Autofac RegisterInstance与SingleInstance

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

VS

 builder.RegisterType().As().InstancePerRequest(); 

我在这里看到了前雇员的代码,并想知道这个人是否想要注册一个.SingleInstance()行为。

 builder.RegisterType().As().SingleInstance(); 

使用RegisterInstance的ServiceProductDataProvider的手动新增与Register .SingleInstance()不同吗?

使用RegisterInstance的ServiceProductDataProvider的手动新增与Register .SingleInstance()不同吗?

RegisterInstance允许您在AutoFac中注册单个实例。

RegisterInstanceRegisterType + SingleInstance方法之间的区别在于RegisterInstance方法允许您注册非Autofac构建的实例。

但这两种解决方案都会导致在Autofac中注册一个单例。

顺便说一句,两个注册在以下代码示例中是等效的

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