在StructureMap中回退不可解析的构造函数参数

时间:2017-10-02 16:29:08

标签: structuremap

假设我有一个班级

public class Foo()
{
    public Foo(Bar bar){}
    public Foo():this(Bar.Default){}
}

我希望StructureMap在容器可以解析bar时使用第一个构造函数重载,但是当它不能解析时,我希望第二个构造函数重载。

如何配置容器来执行此操作(一般情况下,特别是Foo类?)

1 个答案:

答案 0 :(得分:1)

Foo依赖于Bar,因此您应该将其建模为单个构造函数,由您的容器注入正确的Bar实现。

因此,在配置容器时,应该检测何时无法解析bar并且应该使用默认值

<binding protocol="http" bindingInformation="*:51791:www.yourapp.local" />