我有一个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;
}
}
答案 0 :(得分:2)
这应该做的工作:
x.For<MyThingyController>()
// or better interface
// x.For<IMyThingyController>()
.Use<MyThingyController>()
.Ctor<IThingy>("thingy1")
.Is<LegacyThingy>()
.Ctor<IThingy>("thingy2")
.Is<ShinyNewThingy>();