是否可以使用StructureMap的上下文绑定

时间:2013-06-25 15:52:18

标签: c# dependency-injection structuremap

我有一个MVC4控制器,如:

public MyThingyController 
{
  IThingy thingy1;
  IThingy thingy2;

  public MyClass(IThingy thingy1, IThingy thingy2) {
    this.thingy1 = thingy1;
    this.thingy2 = thingy2;
  }
}

IThingy有两个不同的具体实现,我想慢慢地在

之间移动

使用ninject我会使用contextual binding

但是我的谷歌foo完全没有让我在搜索中找到与StructreMap

相当的东西

所以我想设置StructureMap,如:

public class IocConfig
{
  public static IContainer GetCommonServiceLocator()
  {
    ObjectFactory.Initialize(x =>
      {
        x.For<IThingy>()
             .Use<LegacyThingy>();
        x.For<IThingy>()
             .Use<ShinyNewThingy>();
      });
    return ObjectFactory.Container;
  }
}

1 个答案:

答案 0 :(得分:2)

这应该做的工作:

x.For<MyThingyController>() 
// or better interface 
// x.For<IMyThingyController>()
   .Use<MyThingyController>()
    .Ctor<IThingy>("thingy1")
     .Is<LegacyThingy>()
    .Ctor<IThingy>("thingy2")
     .Is<ShinyNewThingy>();