c# - Autofac 模块缺少准备事件
问题描述
我们有一个使用 v5 之前创建的 Autofac 模块,现在我们正在使用使用 v6+ 的升级 nuget 包,我们在调用项目中遇到降级错误。因此强制升级 IComponentRegistration 不再有我们可以在 LoggerModule 中使用的 Preparing 事件。
有谁知道需要做什么才能使这个模块的 OnPreparing 订阅支持版本 6+?
解决方案
在此处查看升级文档:https ://autofaccn.readthedocs.io/en/latest/whats-new/upgradingfrom5to6.html
RegistrationBuilder.RegistrationData 不再公开已配置的 ActivatedHandlers、ActivatingHandlers 或 PreparingHandlers,并且 IComponentRegistration 不再公开 Preparing、Activating 或 Activated 事件。
现在,所有 Autofac 事件都作为添加到解析管道的 CoreEventMiddleware 实现。
如果您需要检查添加到注册的事件处理程序集,您可以检查注册的中间件以查找 CoreEventMiddleware 的实例:
// Check if the registration has an OnActivated handler.
if (registration.ResolvePipeline.Middleware.Any(c => c is CoreEventMiddleware ev && ev.EventType == ResolveEventType.OnActivated))
{
}
新的记录器示例也可能对https://autofaccn.readthedocs.io/en/latest/examples/log4net.html有所帮助:
推荐阅读
- twitter - Twitter Card Images 在 Gatsby 应用程序上不起作用
- javascript - 在 d3js 中使用 join 方法时出现无效的合并错误
- flutter - 为什么 textbutton 不符合 ROW 中的普通文本
- python - 即使在单独的线程中运行后台进程后,Tkinter GUI 也会冻结
- python - FastApi - api 密钥作为参数足够安全
- spring - 加载资源失败:服务器响应状态为 404 (Not Found) Angular12 Spring boot
- python - 如何在 Pygame 中使用类来缩小此代码段?
- git - 无法克隆 GitHub SSH 存储库:CreateProcessW 失败错误:193
- java - JPQL 之类的查询忽略 blob/html 和多个关键字的大小写
- sql - SQL:如何获取其列满足特定条件的所有行