StructureMap生命周期范围

时间:2014-03-05 12:26:15

标签: 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(IFoo foo)
}

我做了一个:

container.GetInstance<Parent>();

有没有办法配置StructureMap以便注入的IFoo是同一个实例,但只针对每个GetInstance()?

1 个答案:

答案 0 :(得分:2)

我必须在my book查找,但这被称为 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 @>