快速问题:我一直在项目中使用带有asp.net core的autofac,并且我注意到它在将其更新为最新的nuget包后尝试在配置期间解析所有类型(来自Autofac.Extensions.DependencyInjection 5.0.1至7.0.2)。顺便说一句,这是用于注册类型的代码:
builder.RegisterAssemblyTypes(typeof(Utilizador).Assembly)
.AsImplementedInterfaces()
.AsSelf();
直到现在,我还没有看到这种行为。这种新方法的问题在于它将尝试解决永远不会通过DI注入的类型。例如,它抱怨没有公共构造函数事件的公共类,尽管这些类永远不会通过DI创建。
有人可以指出更改发生的时间吗?
这是否意味着现在我必须明确过滤所需的类型?
谢谢。
答案 0 :(得分:0)
这不是什么新鲜事。
您可以使用以下内容过滤掉这些内容:
builder.RegisterAssemblyTypes(ThisAssembly)
.Where(type => type.GetConstructors(BindingFlags.Public).Any())
.AsImplementedInterfaces();