我有一个构造函数从依赖注入框架(Autofac)获取其依赖项。问题是除了获取那些依赖项之外,我在构造函数中不能做任何其他事情,如果我在构造函数中编写除了那些依赖项赋值之外的任何语句,我会收到以下错误: -
No parameter less constructor is defined for this object
我必须评论下面显示的readonly字符串的分配,以便工作: -
public RelationshipController(ICustomerService customerService,)
{
this.customerService = customerService;
//someReadonlyString = "abcd";
}
有人可以告诉我,发生了什么事吗?
答案 0 :(得分:1)
当在容器中找不到所请求的服务(在这种情况下,ICustomerService
)时,Autofac将继续查找默认(a.ka.无参数)构造函数。你显然没有默认的构造函数,因此Autofac会出现异常。
我猜这里的真正错误在于ICustomerService
界面的注册码。
答案 1 :(得分:0)
我看到一个RelationshipController,这可能意味着你正在使用ASP.NET MVC。您可能没有在MVC中正确注册Autofac。在这种情况下,MVC将不使用Aufofac,只能使用默认构造函数。