Utilisation de l'usine abstraite comme usine d'injection dans Unity?
Question
J'ai une fabrique abstraite enregistrée pour l'injection dans certaines instances de contrôleur. Puis-je enregistrer cette fabrique abstraite et l'utiliser comme usine d'injection?
Voici ce que j'ai:
public interface ILevelFactory
{
Levels Create();
}
.RegisterType<ILevelFactory, LevelFactory>()
.RegisterType<Levels>(new InjectionFactory((c) => StaticLevelFactory.GetLevels()))
Situation souhaitée:
.RegisterType<ILevelFactory, LevelFactory>()
.RegisterType<Levels>(*** look up and use ILevelFactory ***)
En bref, je veux me débarrasser de StaticLevelFactory.
La solution
Si votre ILevelFactory est correctement enregistré:
RegisterType<Levels>(new InjectionFactory((c) => c.Resolve<ILevelFactory>().GetLevels()))
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow