J'ai un problème avec la résolution d'un type enregistré dans UnityContainer. Dans mon bootstraper j'ai outrepassé la méthode ConfigureContainer. Maintenant, cette méthode ressemble à ceciUnityContainer ne peut pas résoudre le type
protected override void ConfigureContainer()
{
base.ConfigureContainer();
RegisterTypeIfMissing(typeof(IView<ShellViewModel>), typeof(Shell), false);
RegisterTypeIfMissing(typeof(CommandReaderWriter), typeof(CommandReaderWriter), true);
}
Puis, en fonction CreateShell (également bootstraper) Je veux obtenir l'instance de type CommandReaderWriter donc je l'ai fait
var raeder = Container.TryResolve<CommandReaderWriter>();
unfortunatelly retourne cette valeur nulle. J'ai également essayé
var anotherReader = Container.TryResolve(typeof (CommandReaderWriter));
mais il n'a pas fait un tour. Cependant, intéressant est le fait que
var isRegistered = Container.IsTypeRegistered(typeof (CommandReaderWriter));
renvoie vrai.
alors quelle est la manière appropriee d'enregistrer singletone dans UnityContainer?
Je ne sais pas UnityBootstrapper, mais je parie que RegisterTypeIfMissing s'attend à ce que le premier paramètre soit une interface et non une classe. Pouvez-vous accéder au IUnityContainer et utiliser les méthodes Unity normales pour l'enregistrement? – ErnieL