Je développe une application Android avec Xamarin. Supposons que j'ai une activité et il dépend d'une interface:Xamarin Android et Dependecy Injection
interface IFoo
{
// methods
}
public class Foo : IFoo
{
private readonly IBar _bar;
public Foo(IBar bar)
{
_bar = bar;
}
// methods implementation
}
// dependency injection somewhere in Application class
var container = new UnityContainer();
container.RegisterType<IFoo, Foo>();
public class MyActivity : Activity
{
// it's incorrect constructor and this code will not be compiled
public MyActivity(IFoo foo)
{
_foo = foo;
}
private readonly IFoo _foo;
}
Je voudrais injecter instance de IFoo dans le constructeur de MyActivity mais comme vous le savez, il est impossible de créer constructeur avec des paramètres. Comment est-ce que je pourrais passer l'instance initialisée de IFoo avec toutes ses dépendances à MyActivity? J'utilise le framework Unity comme Dependency Injection (mais je peux le changer).
Pourquoi voudriez-vous injecter l'instance de 'IFoo' dans le constructeur de' MyActivity'? Si vous voulez initialiser 'UnityContainer', vous pouvez le faire dans la classe Android' Application'. –
@ YorkShen-MSFT et comment pourrais-je l'utiliser dans la classe d'activité? – Pupkin