我Class A
是ILetter
和Class B
的派生类型。我使用Ninject
作为DI容器。我使用了Lazy<T>
注入,如下所示。
static void Main()
{
IKernel kernel =new StandardKernel();
kernel.Bind<ILetter>().To<A>();
var x = kernel.Get<B>();
}
public class A:ILetter
{
public A()
{
}
}
class B
{
private readonly Lazy<ILetter> _letter;
public B(Lazy<ILetter> letter)
{
_letter = letter;
var x = this._letter.Value; //Error raise in this line
}
}
但我得到了
The lazily-initialized type does not have a public, parameterless constructor.
当我致电Value
财产
我关注this链接
我还看过this帖子,其中该人已使用方法绑定。
哪一个是真的?我应该使用该方法绑定?如果是,为什么Ninject文档没有提到它?