在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()?
答案 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 @>