Dependency injection 无法在';s使用依赖注入

Dependency injection 无法在';s使用依赖注入,dependency-injection,constructor,autofac,Dependency Injection,Constructor,Autofac,我有一个从依赖项注入框架(Autofac)获取依赖项的构造函数。问题是,除了获取这些依赖项,我无法在构造函数中执行任何其他操作,如果我在构造函数中编写除这些依赖项分配之外的任何语句,我将得到以下错误:- 没有为此对象定义无参数构造函数 我必须对如下所示的只读字符串赋值进行注释,以使其正常工作:- public RelationshipController(ICustomerService customerService,) { this.customerService = customer

我有一个从依赖项注入框架(Autofac)获取依赖项的构造函数。问题是,除了获取这些依赖项,我无法在构造函数中执行任何其他操作,如果我在构造函数中编写除这些依赖项分配之外的任何语句,我将得到以下错误:-

没有为此对象定义无参数构造函数

我必须对如下所示的只读字符串赋值进行注释,以使其正常工作:-

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

有人能告诉我发生了什么吗?

当在容器中找不到请求的服务(在本例中为
ICCustomerService
)时,Autofac将继续查找默认(a.ka.无参数)构造函数。显然,您没有默认构造函数,因此Autofac会带着一个异常退出


我猜这里真正的错误是
icCustomerService
接口的注册码。

当在容器中找不到请求的服务(在本例中,
icCustomerService
)时,Autofac将继续查找默认(a.ka.无参数)构造函数。显然,您没有默认构造函数,因此Autofac会带着一个异常退出



我猜这里真正的错误在于
ICCustomerService
接口的注册码。

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

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

向构造函数添加赋值不会导致此错误。你能再贴一些上下文吗?如何设置依赖项解析器?您的集装箱登记情况如何?确切的错误消息是什么,内部异常是什么?可能是
icCustomerService
实现存在问题,而不是控制器……另外,
在构造函数签名中做了什么?我看到一个
关系控制器
,这可能意味着您正在使用ASP.NET MVC(但您没有此标记)。您可能没有在MVC中正确注册Autofac。在这种情况下,MVC将不使用Aufofac,只能使用默认构造函数。请显示您的配置,以及完整的异常+消息+堆栈跟踪。@Steven,看起来您的答案是正确的,或者正在进行中。请充实并发布您的评论作为答案,也许我们可以让这件事进展起来。向构造函数添加赋值不会导致此错误。你能再贴一些上下文吗?如何设置依赖项解析器?您的集装箱登记情况如何?确切的错误消息是什么,内部异常是什么?可能是
icCustomerService
实现存在问题,而不是控制器……另外,
在构造函数签名中做了什么?我看到一个
关系控制器
,这可能意味着您正在使用ASP.NET MVC(但您没有此标记)。您可能没有在MVC中正确注册Autofac。在这种情况下,MVC将不使用Aufofac,只能使用默认构造函数。请显示您的配置,以及完整的异常+消息+堆栈跟踪。@Steven,看起来您的答案是正确的,或者正在进行中。请充实并发布您的评论作为答案,也许我们可以让这件事进展起来。这段代码不是真实的代码,它只是为了显示发生的情况。我有3-4个依赖项被传递到构造函数中,并且所有内容都已正确注册,因为:如果我只删除只读字符串变量赋值,一切都很好。@puretechy-好的,但这就是为什么我们需要看到更多的图片,因为你所说的根本无法计算。Autofac关心(而不是看到)构造函数在做什么,只关心公共签名的外观。将您的代码精简到仍然显示相同症状的编译版本,然后更新您的问题。那么也许我们能帮你发现问题。请同时附上集装箱注册码。彼得,我从未见过这种行为。我通常会得到一个有用的“无法为构造函数解析”(或类似的词语)。我从未见过它“bail”有一个蹩脚的“未找到无参数构造函数”错误。这是旧版本中的行为吗?@MarcL.-我也没有想到这件事。我越来越怀疑史蒂文是对的,例外情况并非来自Autofac。搜索Autofac 1.x和2.x源不会显示任何此类消息!这段代码不是真实的代码,只是为了显示发生的情况。我有3-4个依赖项被传递到构造函数中,并且所有内容都已正确注册,因为:如果我只删除只读字符串变量赋值,所有内容都可以正常工作。@puretechy-好的,但这就是为什么我们需要看到更多图片,因为你说的根本算不上。Autofac关心(而不是看到)构造函数在做什么,只关心公共签名的外观。将您的代码精简到仍然显示相同症状的编译版本,然后更新您的问题。那么也许我们能帮你发现问题。请同时附上集装箱注册码。彼得,我从未见过这种行为。我通常会得到一个有用的“无法为构造函数解析”(或类似的词语)。我从未见过它“bail”有一个蹩脚的“未找到无参数构造函数”错误。这是旧版本中的行为吗?@MarcL.-我也没有想到这件事。我越来越怀疑史蒂文是对的,但例外情况并非如此