Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 结构映射生存期范围_C#_C# 4.0_Dependency Injection_Unity Container_Structuremap - Fatal编程技术网

C# 结构映射生存期范围

C# 结构映射生存期范围,c#,c#-4.0,dependency-injection,unity-container,structuremap,C#,C# 4.0,Dependency Injection,Unity Container,Structuremap,在Unity中,有一个“每个解析一个单例”的生存期范围(至少以前有;没有检查新版本)。StructureMap是否具有等效项 为了进一步解释,假设我们有: public class Parent { public Parent(ChildA childA, ChildB childB) { } } public class ChildA { public ChildA(IFoo foo) } public class ChildB { public ChildB(IF

在Unity中,有一个“每个解析一个单例”的生存期范围(至少以前有;没有检查新版本)。StructureMap是否具有等效项

为了进一步解释,假设我们有:

public class Parent
{
    public Parent(ChildA childA, ChildB childB) { }
}

public class ChildA
{
    public ChildA(IFoo foo)
}

public class ChildB
{
    public ChildB(IFoo foo)
}
我做了一个:

container.GetInstance<Parent>();
container.GetInstance();
是否有一种方法可以配置StructureMap,使IFoo被注入的是同一个实例,但只针对每个GetInstance()?

我必须在中查找它,但这称为PerRequest,实际上是默认的生活方式

下面是一个使用StructureMap 2.6.4.1的测试,它演示了这一点:

[<Fact>]
let DefaultLifetimeIsPerRequest() =
    use container = new Container(fun r -> r.For<IFoo>().Use<Foo>() |> ignore)
    let actual = container.GetInstance<Parent>()
    test <@ actual.ChildA.Foo = actual.ChildB.Foo @>
[]
让DefaultLifetimeIsPerRequest()=
使用容器=新容器(fun r->r.For().use()|>忽略)
让实际值=container.GetInstance()
试验