无法在使用依赖项注入的构造函数中初始化变量

时间:2012-07-09 13:39:00

标签: dependency-injection constructor autofac

我有一个构造函数从依赖注入框架(Autofac)获取其依赖项。问题是除了获取那些依赖项之外,我在构造函数中不能做任何其他事情,如果我在构造函数中编写除了那些依赖项赋值之外的任何语句,我会收到以下错误: -

No parameter less constructor is defined for this object

我必须评论下面显示的readonly字符串的分配,以便工作: -

public RelationshipController(ICustomerService customerService,)
{
   this.customerService = customerService;
   //someReadonlyString = "abcd";
}

有人可以告诉我,发生了什么事吗?

2 个答案:

答案 0 :(得分:1)

当在容器中找不到所请求的服务(在这种情况下,ICustomerService)时,Autofac将继续查找默认(a.ka.无参数)构造函数。你显然没有默认的构造函数,因此Autofac会出现异常。

我猜这里的真正错误在于ICustomerService界面的注册码。

答案 1 :(得分:0)

我看到一个RelationshipController,这可能意味着你正在使用ASP.NET MVC。您可能没有在MVC中正确注册Autofac。在这种情况下,MVC将不使用Aufofac,只能使用默认构造函数。