0
我要實現這種類型的結合:Ninject綁定通用的具體類型
interface IService<T>
{
T Get(int id);
}
class StringService : IService<string>
{
public string Get(int id)
{
throw new NotImplementedException();
}
}
kernel.Bind<IService<string>>().To<StringService>();
但它給我一個錯誤,我已經看到了如何IService <>綁定到ConcreteService <>了,但是這是不是我想要的。
更新 它拋出Ninject.ActivationException
- 「錯誤激活IService沒有匹配的綁定是可用的,並且類型不是自綁定」
「它給了我一個錯誤」。什麼錯誤?編譯時?運行?異常詳細信息(消息,類型和堆棧跟蹤)。 – Steven
這可能是'StringService'類需要是'internal'或'public'纔可以接受它的「默認構造函數」(無參數構造函數)。因爲綁定證書應該是正確的,所以我們一直在使用它。 – BatteryBackupUnit
作爲例外狀態,您沒有'IService'的綁定(您只有一個用於'IService'!)。那麼'IService'界面是什麼?它實際上是'IService :IService'? –
BatteryBackupUnit