0

我有Class A它是ILetterand的派生类型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 文档没有提到它?

4

0 回答 0