我有一个特定的工厂,它创建(在它自己的程序集中)一些接口实现:
public static IDataSource<T> CreateDataSource<T>(DataContext dataContext) { ... }
我需要在我的nInject
内核绑定器中使用它。所需的绑定看起来像IDataSource<T> -> Factory.CreateDataSource<T>(dataContext)
.
但问题是以下内容无法编译:-
kernel.Bind(typeof(IDataSource<>))
.ToConstructor(ctx =>(Action<DataContext,>)Factory.CreateDataSource)
我尝试了其他类似的东西,但也无法让它们编译。无论如何(我的猜测)我需要这个T
泛型类型来指定。
kernel.Bind(typeof(IDataSource<>))
.ToConstructor(ctx => Factory.CreateDataSource(ctx.Inject<DataContext>()))
这仍然无法编译,因为该T
类型需要它。
我怎样才能绑定到那种方法?