1

我有一个 MVC4 控制器,例如:

public MyThingyController 
{
  IThingy thingy1;
  IThingy thingy2;

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

IThingy 有两种不同的具体实现,我想在它们之间慢慢移动

使用 ninject 我会使用上下文绑定

但是我的 google 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;
  }
}
4

1 回答 1

2

这应该做的工作:

x.For<MyThingyController>() 
// or better interface 
// x.For<IMyThingyController>()
   .Use<MyThingyController>()
    .Ctor<IThingy>("thingy1")
     .Is<LegacyThingy>()
    .Ctor<IThingy>("thingy2")
     .Is<ShinyNewThingy>();
于 2013-06-26T04:07:45.820 回答