我需要将 Ninject
转换为 SimpleInjector
实现。
我有以下代码
public T Resolve<T>()
{
// IKernel kernel - is the global declaration
return kernel.Get<T>();
}
我想要与简单注入(inject)器等效的东西
我已经尝试过
public T Resolve<T>()
{
// SimpleInjector.Container kernel - is the global declaration
return kernel.GetInstance<T>();
}
但这会引发错误,因为 T
不是一个类,因为它是泛型类型。
我无法将该方法强制转换为严格将 T
作为类返回,因为它是一个接口(interface)实现。
有什么建议吗?
最佳答案
向您的 Resolve 方法添加泛型类型约束:
public T Resolve<T>() where T : class
{
return kernel.GetInstance<T>();
}
或调用非泛型 GetInstance 重载:
public T Resolve<T>()
{
return (T)kernel.GetInstance(typeof(T));
}
关于ninject - Simpleinjctor 根据泛型类型获取实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34167903/