Im Versuch, einen Android-und iOS-spezifischen Dienst zu injizieren, aber auf Android bekomme ich einen Fehler in App.xaml.cs
darüber nicht in der Lage, den Parameter für LoginService
Xamarin.Forms Prism: Android Abhängigkeit Injektion von plattformspezifischen Service
Mein App.xaml.cs
:
protected override void RegisterTypes()
{
Container.RegisterTypeForNavigation<NavigationPage>();
Container.RegisterTypeForNavigation<MainPage>();
Container.RegisterTypeForNavigation<MapsPage>();
Container.RegisterInstance<ILoginService>(new LoginService(Container.Resolve<IClsDkwsService>()));
}
Mein 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());
}
}
Es sieht lik e AndroidInitializer.RegisterTypes()
heißt nachApp.RegisterTypes()
. Ich möchte vermeiden, LoginService
in jeder Plattform zu registrieren. Wie stelle ich sicher, dass alle plattformspezifischen Dienste in App.xaml.cs
registriert sind?
in Unity registrieren. Warum akzeptiert Ihr LoginService den Konstruktor IClsDkwsService nicht? Warum nimmt man die Implementierung davon? Das ist eine Art Verletzung der Dependence, meinst du nicht? – BraveHeart
Ich möchte sie als Singletons registrieren. Wie sonst kann ich es tun? – user1202032