我有Class A
它是ILetter
and的派生类型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
财产
我跟着这个链接
我也看过这篇文章,其中那个家伙使用了方法绑定。
哪一个是真的?我应该用方法绑定吗?如果是,为什么 Ninject 文档没有提到它?