结构图解析顶级请求疯狂相同的嵌套容器

时间:2017-04-24 09:58:46

标签: c# .net dependency-injection structuremap

所有

我需要配置StructueMap来解析嵌套容器中每个顶级请求的类的新实例。

让我试着解释一下,以下所有代码都是一个简化的例子,但应该显示我想要实现的目标。

将共享的对象IDependency

服务/存储库设置:

public class Service1
{   
    public Service1(Repository1 repository, IDependency dependency) { }
}

public class Service2
{
    public Service2(Repository2 repository, IDependency dependency) { }
}


public class Repository1
{   
    public Repository1(IDependency dependency) { }
}

public class Repository2
{
    public Repository2(IDependency dependency) { }
}

正如您所看到的,依赖关系是如此

Service1需要Repository1IDependency,然后Repository1需要IDependency

Service2需要Repository2IDependency,然后Repository2需要IDependency

对于Service1Repository1,我希望他们共享同一个IDependancy

的实例

然后对于Service2Repository2我希望他们共享同一个IDependancy

的实例

但我不希望Service1Service2共享同一个IDependancy

的实例

我正在解析Service1Service2

using (IContainer container = rootContainer.GetNestedContainer())
{    
    Service1 service1 = container.GetInstance<Service1>();
    Service2 service2 = container.GetInstance<Service2>();
}

是否有可能让服务和存储库共享同一个IDependancy实例,但不能在不同服务之间共享,所有这些都在同一个嵌套容器中,是否可能?

由于

史蒂夫

0 个答案:

没有答案