当 Autofac 尝试通过依赖解析器解析构造函数参数时,有没有办法一次列出所有丢失的注册?或者是一次通过一个的唯一方法..
以此为例:
public MyWebApiController(IMyInterface myInterface)
我知道实现 IMyInterface 的类 MyInterfaceImpl 必须像这样使用 Autofacs ContainerBuilder 注册:
builder.RegisterType<MyInterfaceImpl>().As<IMyInterface>()
但是,如果 MyInterfaceImpl 依赖于 10 个其他构造函数,并且每个构造函数都依赖于少数几个构造函数怎么办?有没有办法让 Autofac 遍历所有尚未向 ContainerBuilder 注册的依赖项,而不是在第一次出现时抛出 DependencyResolutionException?
拿:
public MyInterfaceImpl(IMyInterface2 myInterface2, IMyInterface3 myInterface3, ... etc ...)
每个都有自己的构造函数需要注册..
public MyInterface2Impl(IMyInterfaceB myInterfaceB)
等等
因为我缺少 Autofac 注册,所以显示以下异常消息,告诉我必须注册即 MyInterface2Impl 与接口。
在“MyWebApiController”类型上使用“Autofac.Core.Activators.Reflection.DefaultConstructorFinder”找到的任何构造函数都不能被可用的服务和参数调用
以及显示它拒绝哪个参数的详细信息:
无法解析构造函数'Void .ctor(IMyInterface2 myInterface2, IMyInterface3 myInterface3, ... etc ...) 的参数'IMyInterface2 myInterface2'
但是我可能有接下来的 5 个丢失的注册信息。这是一个烦恼,因为我必须启动站点/服务并调用 api 控制器,在我修复每个丢失的注册之后,有时在设置 coctail 时可能会有很多丢失的注册。
那么,Autofac 可以一次显示所有丢失的注册信息吗?