IProductRepositoryProxy ProductDataServiceProviderInstance = new ServiceProductDataProvider();
builder.RegisterInstance(ProductDataServiceProviderInstance).As<IProductRepositoryProxy>();
VS
builder.RegisterType<ServiceProductDataProvider>().As<IProductRepositoryProxy>().InstancePerRequest();
J'ai vu ce code d'un ancien employé ici et je me demande si le gars voulait enregistrer un comportement .SingleInstance ().
builder.RegisterType<ServiceProductDataProvider>().As<IProductRepositoryProxy>().SingleInstance();
La mise à jour manuelle du ServiceProductDataProvider avec RegisterInstance n'est-elle pas identique à Register .SingleInstance () ??
La mise à jour manuelle du ServiceProductDataProvider avec RegisterInstance n'est-elle pas identique à Register .SingleInstance () ??
RegisterInstance
vous permet d'enregistrer une seule instance dans AutoFac.
La différence entre les méthodes RegisterInstance
et RegisterType
+ SingleInstance
est que la méthode RegisterInstance
vous permet d'enregistrer une instance non construite par Autofac =.
Mais les deux solutions entraîneront l'enregistrement d'un singleton dans Autofac.
Par ailleurs, les deux enregistrements sont équivalents dans l'exemple de code suivant
var instance = GetInstanceFromSomewhere();
builder.RegisterInstance<IService>(instance);
builder.Register(c => instance).As<IService>().SingleInstance();