簡體   English   中英

Ninject:從非泛型構造泛型類

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM