这个概念非常流行,但我还没有找到答案。我该如何更好地使用Ninject IOC
我有以下的阶层结构
public interface IMessage
{
}
public class MessageA : IMessage
{
}
public class MessageB : IMessage
{
}
public interface IMessageHandler<T> where T : IMessage
{
void Handle(TMessage message);
}
public interface MessageAHandler : IMessageHandler<MessageA>
{
}
public interface MessageBHandler : IMessageHandler<MessageB>
{
}
public class MessageProcessor
{
public void Process(IMessage)
{
if (IMessage is MessageA)
{
// handler for messageA has to be invoked
}
else if (IMessage is MessageB)
{
// handler for messageB has to be invoked
}
}
}
现在我使用Ninject和dooing我绑定像
Bind<IMessageHandler<MessageA>>.To<MessageAHandler>();
Bind<IMessageHandler<MessageB>>.To<MessageBHandler>();
我想以某种方式做所有的绑定魔法结合模块中选择处理程序。 MessageProcessor类应该只是通过来调用它来处理消息。
这是什么东西是以及如何在绑定模块中完成是我无法弄清楚的。有人可以帮助!
感谢
你怎么在'MessageProcessor'类中注入类型? –
使用ninject的构造函数注入。代码已被省略由于NDA限制 – user205892