我使用的是九目标框架。在我的代码中,我有一个延迟对象。我可以创建一个实例,但是当我调用value属性时,我得到了一个异常。
 private Lazy<IPsoriasisReportUserControl> psoriasisReportUserControl;
[Inject]
    public Lazy<IPsoriasisReportUserControl> PsoriasisReportUserControl
    {
        get { return psoriasisReportUserControl; }
        set { psoriasisReportUserControl = value; }
    }我得到了
延迟初始化的类型没有公共的、无参数的构造函数。
异常,因为注入没有将方法注入构造函数。我认为我必须编写一个方法来绑定创建一个新实例的东西。
发布于 2013-06-10 10:40:02
Bind(typeof (Lazy<IPsoriasisReportUserControl>)).ToMethod(
            ctx => new Lazy<IPsoriasisReportUserControl>(() =>
                  Kernel.Get<IPsoriasisReportUserControl>()));发布于 2013-06-12 15:52:42
使用Ninject https://github.com/ninject/ninject.extensions.factory的工厂扩展
发布于 2013-06-10 09:37:18
在Lazy上需要一个默认的公共构造函数:
public Lazy() {}https://stackoverflow.com/questions/17020736
复制相似问题