【问题标题】:StructureMap - How do I use multiple objects inheriting from the same interfaceStructureMap - 如何使用从同一接口继承的多个对象
【发布时间】:2014-07-03 15:37:36
【问题描述】:

当使用 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;
   }
}

【问题讨论】:

标签: c# ioc-container structuremap


【解决方案1】:

来自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");

【讨论】:

  • 不错的编辑!我没有意识到有一个Named 方法。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-22
  • 2010-09-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多