1

我声明了以下类:

public class SeedData
{
    private IUow _uow;

    public SeedData(IUow uow)
    {
        _uow = uow;
    }

}

在引导程序中:

container.RegisterType<IUow, Uow>();

我的代码尝试声明一个这样的实例:

var a = new SampleData.EF.SeedData();

但是我收到消息:

Error 
'SampleData.EF.SeedData' does not contain a constructor that takes 0 arguments  

有人可以解释我可以做些什么来让我的 IoC 为我创建一个 Uow 实例。我会以错误的方式解决这个问题吗?

4

2 回答 2

4

您还应该放入SeedData容器中:

container.RegisterType<SeedData>();

然后调用:

var a = container.Resolve<SeedData>();

而不是直接由new. 通过这种方式,容器将自动为您注入IUow

于 2013-03-25T07:39:35.937 回答
0

添加公共构造函数时,会覆盖没有参数的默认构造函数。尝试添加不带参数的公共构造函数,您将从容器中获取对象

于 2013-03-25T07:36:01.940 回答