StructureMap - 如何使用从同一接口继承的多个对象

时间:2014-07-03 15:37:37

标签: c# ioc-container structuremap

使用StructureMap时,我希望A类注入Bar和B类注入Baz。

如何使用StructureMap配置/设置此关系?

public class Bar : IFoo {}
public class Baz : IFoo {}

public class A
{
   private IFoo _foo;

   public A(IFoo foo)
   {
      _foo = foo; 
   }
}

public class B
{
   private IFoo _foo;

   public B(IFoo foo)
   {
      _foo = foo;
   }
}

1 个答案:

答案 0 :(得分:2)

来自this answer我认为你需要做这样的事情:

For<IFoo>().Add<Bar>().Named("bar");
For<IFoo>().Add<Baz>().Named("baz");

For<A>()
    .Use<A>()
    .Ctor<IFoo>()
    .Named("bar");

For<B>()
    .Use<B>()
    .Ctor<IFoo>()
    .Named("baz");