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