C# AutoFac单例实例

C# AutoFac单例实例,c#,dependency-injection,autofac,C#,Dependency Injection,Autofac,在线程安全方面声明singleton是否有任何问题,如下所示:- Register(c=>newwrapper()).As().SingleInstance() 单例类中实例变量的生存期是多少 例如:- Class Wrapper { public CosmosDbCollection graphCollection {get; private set} public DbManager DocDBManager { get; private set; } public Wrapper

在线程安全方面声明singleton是否有任何问题,如下所示:- Register(c=>newwrapper()).As().SingleInstance()

单例类中实例变量的生存期是多少 例如:-

Class Wrapper 
{

public CosmosDbCollection graphCollection {get; private set}

 public DbManager DocDBManager { get; private set; }

public Wrapper()
{
 initialize();
}

private initialize()
{
  // get cosmos collection and store it in the graph collection object
}
}
每个请求都将使用DocbManager进一步查询cosmos数据库中的特定文档。 标记单件包装是个好主意吗

另外,我还有另一个包装器类,它已初始化为public方法,并以以下方式调用:-

IWrapper2 wrapper2 = AppContainer.Container.Resolve<IWrapper2>();
wrapper2.initialize();
IWrapper2 wrapper2=AppContainer.Container.Resolve();
wrapper2.initialize();

此初始化将初始化singleton类的一些成员变量。这样做可以吗?

单例类中实例变量的生存期一般来说与包含它的类相同(即应用程序的生存期)。
在线程安全方面声明单例是否有任何问题,如下所示
是类,它的所有状态(例如,
图形采集
),线程安全?声明这样的单例是没有问题的。测试使用多个线程解决它时,您会发现
包装器的构造函数被一次性调用。谢谢!我想我可以通过将调试点放在注册所有这些依赖项的位置来检查这件事…@mjwills也在另一个类中,该类是reg注册为singleton我稍后调用initialize方法来设置类中的实例…IMonitoringWrapper=AppContainer.Container.Resolve();wrapper.initialize();它在启动时被调用..可以吗?