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的行为符合预期

问题是不同的库是在它们自己的
容器中导入的,因此它们无法确定另一个容器已经有了接口的单例

此外,如果任何人有类似问题,我会提供我的测试解决方案: