Autofac RegisterInstance vs instance unique
IProductRepositoryProxy ProductDataServiceProviderInstance = new ServiceProductDataProvider();
builder.RegisterInstance(ProductDataServiceProviderInstance).As<IProductRepositoryProxy>();
VS
builder.RegisterType<ServiceProductDataProvider>().As<IProductRepositoryProxy>().InstancePerRequest();
J'ai vu ce code à partir d'un ex-employé ici et je me demande si le gars a voulu enregistrer un .Instance unique() le comportement.
builder.RegisterType<ServiceProductDataProvider>().As<IProductRepositoryProxy>().SingleInstance();
Est le manuel newing de la ServiceProductDataProvider avec RegisterInstance pas le même que pour le Registre .Instance unique() ??
OriginalL'auteur Elisabeth | 2015-07-23
Vous devez vous connecter pour publier un commentaire.
La
RegisterInstance
vous permet de vous inscrire une seule instance dans AutoFac.La différence entre
RegisterInstance
etRegisterType
+SingleInstance
méthodes est que laRegisterInstance
méthode vous permet d'enregistrer une instance ne se construit pas par Autofac.Mais les deux se traduira par l'inscription d'un singleton dans Autofac.
Par la voie, à la fois de l'inscription sont équivalentes dans l'exemple de code suivant
pas strictement équivalentes. Avec le
RegisterType
+SingleInstance
solution, vous vous inscrivez à un singleton dans Autofac (comme les autres d'une solution), mais vous n'avez pas à fournir de l'instance, Autofac va construire la première fois est nécessaire, alors que pour laRegisterInstance
Autofac ne pas créer l'instance et il doit être créé au cours du processus d'inscriptionok, mais à la fin sa techniquement la même instance du Singleton partagé l'ensemble du cycle de vie des applications jusqu'à ce que IIS descend...
Oui. Aussi loin que le conteneur est en direct, l'instance sera partagé
OriginalL'auteur Cyril Durand