C# 结构映射生存期范围
在Unity中,有一个“每个解析一个单例”的生存期范围(至少以前有;没有检查新版本)。StructureMap是否具有等效项 为了进一步解释,假设我们有: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
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()
试验