gpt4 book ai didi

c# - Autofac RegisterInstance 与 SingleInstance

转载 作者:IT王子 更新时间:2023-10-29 04:14:02 27 4
gpt4 key购买 nike

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

对比

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

我从一位前雇员那里看到这段代码,想知道这个人是否想注册一个 .SingleInstance() 行为。

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

用 RegisterInstance 手动更新 ServiceProductDataProvider 和 Register .SingleInstance() 不一样吗??

最佳答案

Is the manual newing-up of the ServiceProductDataProvider with RegisterInstance not the same as the Register .SingleInstance() ??

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

RegisterInstanceRegisterType + SingleInstance 方法的区别在于 RegisterInstance 方法允许您注册一个实例不是由 Autofac 构建的。

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

顺便说一下,在下面的代码示例中两种注册是等价的

var instance = GetInstanceFromSomewhere(); 

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

关于c# - Autofac RegisterInstance 与 SingleInstance,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31582000/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com