C# StructureMap-应用程序范围的单例(使用注册表)
在一个更大的项目中,我们使用具有多个注册表的结构图-每个注册表位于不同的库中(使用C# StructureMap-应用程序范围的单例(使用注册表),c#,.net,singleton,structuremap,C#,.net,Singleton,Structuremap,在一个更大的项目中,我们使用具有多个注册表的结构图-每个注册表位于不同的库中(使用LookForRegistries()方法扫描所有注册表) 其中一些注册表使用一个特殊类,该类应创建为单例: public class Registry1 : Registry { public Registry1 () { this.For<ISpecialThing>().Use<SpecialThing>().Singleton(); } }
LookForRegistries()
方法扫描所有注册表)
其中一些注册表使用一个特殊类,该类应创建为单例:
public class Registry1 : Registry
{
public Registry1 ()
{
this.For<ISpecialThing>().Use<SpecialThing>().Singleton();
}
}
public class Registry2 : Registry
{
public Registry2 ()
{
this.For<ISpecialThing>().Use<SpecialThing>().Singleton();
}
}
公共类注册表1:注册表
{
公共注册处1()
{
this.For().Use().Singleton();
}
}
公共类注册表2:注册表
{
公共登记处2()
{
this.For().Use().Singleton();
}
}
在上面的示例中,SpecialThing
类被实例化两次
有没有办法告诉注册表中的structure map,在我们的流程中只实例化它一次?structure map的行为符合预期 问题是不同的库是在它们自己的
容器中导入的,因此它们无法确定另一个容器已经有了接口的单例
此外,如果任何人有类似问题,我会提供我的测试解决方案: