使用以下代码通过属性将统一容器用于依赖项注入时:
container.RegisterTypes(
AllClasses.FromLoadedAssemblies()
.Where(t => t.GetCustomAttributes<ABCAttribute>(true).Any()),
WithMappings.FromMatchingInterface,
WithName.Default,
WithLifetime.PerThread);
WebAPI正在获取
的异常尝试创建“ ABCController”类型的控制器时发生错误。确保控制器具有无参数的公共构造函数。“,” ExceptionType“:” System.InvalidOperationException
注意:-第一次清洗并生成解决方案时,不会发生此问题,但是一段时间后调用api就会发生
尝试创建无参数构造函数,但再次获得相同的异常。第一次清洗并构建解决方案时不会发生异常
public ABCController()
{
}
还尝试在ServiceManager中创建无参数构造函数,例如,将无依赖性构造函数注入控制器内部
public class ABCController : ApiController
{
public ABCController(IServiceManager ServiceManager)
{
_ServiceManager = ServiceManager;
}
}
预期结果是WEBAPI应该可以正常工作,因为通过属性进行的依赖项注入无论如何都应依赖于无参数构造函数,因为通过反射统一容器应根据路由请求知道要触发哪个控制器。
无参数构造函数是默认的asp.net webapi行为。是否有一些隐藏在此异常下的潜在异常?