lazily-initialized类型没有公共的无参数构造函数。 Ninject懒惰注射错误

时间:2013-07-21 18:58:50

标签: c# ninject

Class AILetterClass 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文档没有提到它?

0 个答案:

没有答案