[英]C# Ninject - Binding Factory Method and Generic
我有一個名為MessageHandlerFactory的工廠方法
public class MessageHandlerFactory : IMessageHandlerFactory<IMessage>
{
public IMessageHandler<IMessage> GetMessageHandler()
{
return new MessageHandler_1();
}
}
...以及以下消息處理程序
public class MessageHandler_1 : IMessageHandler<Message>
{
//Do Something…
}
public class Message : IMessage
{
public String Name {get; set;}
}
需要將MessageHandlerFactory分配給我項目中所有出現的IMessageHandlerFactory ,以便對IMessageHandlerFactory.GetMessageHandler()的調用將返回MessageHandler_1的實例。 (在我的實際代碼中,我有IMessageHandler和IMessageHandlerFactory的多個實現。GetMessageHandler將根據某些條件返回適當的實現...)。 這是我如何進行Ninject綁定
Bind<IMessageHandlerFactory<IMessage>>().To<MessageHandlerFactory>();
Bind<IMessageHandler<Message>>().To<MessageHandler_1>();
但是當我嘗試訪問MessageHandlerFactory.GetMessageHandler時,出現以下異常
Ninject.ActivationException:激活IMessageHandler {IMessage}時出錯,沒有匹配的綁定可用,並且該類型不可自綁定。 激活路徑:1)請求IMessageHandler {IMessage}
想知道我該如何解決? 我玩這個游戲已經有一段時間了,沒有任何成功。 任何幫助將不勝感激!!
您的異常消息表示您正在嘗試解析“ IMessageHandler <IMessage>”,並且沒有匹配的綁定。 最接近的是“ IMessageHandler <Message>”的綁定(請注意缺少的“ I”)。 我猜這就是您遇到問題的地方。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.