StructureMap中无法解析的构造函数参数的回退
假设我有一节课StructureMap中无法解析的构造函数参数的回退,structuremap,Structuremap,假设我有一节课 public class Foo() { public Foo(Bar bar){} public Foo():this(Bar.Default){} } 我希望StructureMap在容器可以解析bar时使用第一个构造函数重载,但在容器无法解析bar时使用第二个构造函数重载 我如何配置容器来实现这一点,无论是在一般情况下,还是专门针对Foo类?Foo依赖于Bar,因此您应该将其建模为单个构造函数,由您的容器来注入Bar的正确实现 因此,当您配置容器时,您应该
public class Foo()
{
public Foo(Bar bar){}
public Foo():this(Bar.Default){}
}
我希望StructureMap在容器可以解析bar时使用第一个构造函数重载,但在容器无法解析bar时使用第二个构造函数重载
我如何配置容器来实现这一点,无论是在一般情况下,还是专门针对Foo类?Foo依赖于Bar,因此您应该将其建模为单个构造函数,由您的容器来注入Bar的正确实现 因此,当您配置容器时,您应该在无法解析bar时应用检测,并且应该使用默认值
Container cont = new Container(c =>
{
if (useDefaultBar)
{
c.For<IBar>().Use<Bar>(Bar.Default);
}
else
{
c.For<IBar>().Use<Bar>();
}
});
看见