ioc example c# asp.net-web-api asp.net-web-api2 autofac

ioc - autofac example c#



Autofac RegisterInstance vs SingleInstance (1)

¿La actualización manual del ServiceProductDataProvider con RegisterInstance no es lo mismo que Register.SingleInstance ()?

El RegisterInstance permite registrar una sola instancia en AutoFac .

La diferencia entre los métodos RegisterInstance y RegisterType + SingleInstance es que el método RegisterInstance permite registrar una instancia no creada por Autofac .

Pero ambas soluciones darán como resultado el registro de un singleton en Autofac .

Por cierto, ambos registros son equivalentes en el siguiente ejemplo de código

var instance = GetInstanceFromSomewhere(); builder.RegisterInstance<IService>(instance); builder.Register(c => instance).As<IService>().SingleInstance();

IProductRepositoryProxy ProductDataServiceProviderInstance = new ServiceProductDataProvider(); builder.RegisterInstance(ProductDataServiceProviderInstance).As<IProductRepositoryProxy>();

VS

builder.RegisterType<ServiceProductDataProvider>().As<IProductRepositoryProxy>().InstancePerRequest();

Vi este código de un ex empleado aquí y me pregunto si el hombre quería registrar un comportamiento de .SingleInstance ().

builder.RegisterType<ServiceProductDataProvider>().As<IProductRepositoryProxy>().SingleInstance();

¿La actualización manual del ServiceProductDataProvider con RegisterInstance no es lo mismo que Register.SingleInstance ()?