【发布时间】:2011-11-30 17:50:45
【问题描述】:
我正在尝试使用 ninjects 上下文绑定功能根据传递给方法的枚举参数的值绑定到接口的正确实现,但我被卡住了。我想我可以使用元数据来完成这个。这是我尝试过的,但它不起作用。
enum Colors
{
Red,
Blue
}
public interface IColor
{}
public class Red : IColor
{}
public class Blue : IColor
{}
class Test
{
private readonly StandardKernel _kernal;
public Test()
{
_kernal = new StandardKernel();
_kernal.Bind<IColor>().To<Red>().WithMetadata("color", Colors.Red);
_kernal.Bind<IColor>().To<Blue>().WithMetadata("color", Colors.Blue);
}
public void TestMethod(Colors color)
{
IColor iColor = _kernal.Get<IColor>(m => m.Get<Colors>("color") == color);
}
}
有什么想法吗?谢谢
【问题讨论】:
-
这对我有用。那么究竟是什么问题呢?
-
确实,请解释发生了什么。是否抛出异常?
-
投票结束,因为问题在当前形式下无法回答,并且 OP 没有任何形式的回应。