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