0
我試圖注入一個Android和iOS特定的服務,但在Android上我得到一個錯誤App.xaml.cs
關於它無法解析參數LoginService
Xamarin.Forms Prism:Android依賴注入特定於平臺的服務
我App.xaml.cs
:
protected override void RegisterTypes()
{
Container.RegisterTypeForNavigation<NavigationPage>();
Container.RegisterTypeForNavigation<MainPage>();
Container.RegisterTypeForNavigation<MapsPage>();
Container.RegisterInstance<ILoginService>(new LoginService(Container.Resolve<IClsDkwsService>()));
}
我MainActivity.cs
:
public class MainActivity : global::Xamarin.Forms.Platform.Android.FormsAppCompatActivity
{
protected override void OnCreate(Bundle bundle)
{
TabLayoutResource = Resource.Layout.tabs;
ToolbarResource = Resource.Layout.toolbar;
base.OnCreate(bundle);
global::Xamarin.Forms.Forms.Init(this, bundle);
LoadApplication(new App(new AndroidInitializer()));
}
}
public class AndroidInitializer : IPlatformInitializer
{
public void RegisterTypes(IUnityContainer container)
{
container.RegisterInstance<IClsCryptoService>(new Cls_crypto());
container.RegisterInstance<IClsDkwsService>(new Cls_dkws());
}
}
它看起來LIK在App.RegisterTypes()
之後稱爲。我想避免在每個平臺上註冊LoginService
。我如何確保所有平臺特定的服務在App.xaml.cs
中註冊?
爲什麼您的LoginService不在構造函數IClsDkwsService中?爲什麼要執行它。這是違反注射劑的行爲,你不覺得嗎? – BraveHeart
我想將它們註冊爲單身人士。我還能怎麼做呢? – user1202032