[英]Ninject: Construct generic class from non-generic
我在Ninject中具有以下層次結構:
public interface IReader {}
public interface IReaderAsync {}
public class Reader: IReader{}
public class ReaderAsync : IReaderAsync{}
public interface IDatabaseReader : IReader, IReaderAsync {}
public class DatabaseReader : IDatabaseReader
{
public DatabaseReader(IReader reader, IReaderAsync readerAsync){...}
}
使用以下綁定,可以按預期在Ninject中綁定,構造和加載這些類:
Bind(typeof(IReader)).To(typeof(Reader));
Bind(typeof(IReaderAsync)).To(typeof(ReaderAsync));
Bind(typeof(IDatabaseReader)).To(typeof(DatabaseReader));
另外,我還有一個單獨的類,它是從IDatabaseReader
構造(單獨)的:
public class DatabaseReader<T> : IDatabaseReader<T>
{
public DatabaseReader(IDatabaseReader databaseReader){...}
}
我正在使用的綁定是:
// open binding
Bind(typeof(IDatabaseReader<>)).To(typeof(DatabaseReader<>));
...
Kernel.TryGet<IDatabaseReader<TestEntry>>();
但是內核返回null。我在做什么錯?
在重建了一個單獨的,更簡單的問題提示並向自己證明它將加載后,我意識到我沒有加載我認為在運行時的Ninject綁定。 於是問題解決了:用戶問題。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.