asp.net-core - Asp.net Core 3.1 在启动时解析 Autofac 容器并进行一些初始化
问题描述
net core 2.2 到 3.1 最近遇到了 Autofact 问题。构建容器后,我需要进行一些初始化。
在 Asp.net Core 2.2 中,我在 Startup.cs 中有以下代码
public IServiceProvider ConfigureServices(IServiceCollection services)
{
// do some other registr
builder.Populate(services);
IContainer container = builder.Build();
// Do some initialisation
container.Resolve<IMessageQueueService>().RegisterBodiesListener();
return new AutofacServiceProvider(container);
}
在上面的代码中,IMessageQueueService
继承自另一个接口IService
并注入到容器中
builder.RegisterAssemblyTypes(GetType().Assembly)
.As(typeof(IService))
.AsImplementedInterfaces();
但是,在 Asp.net Core 3.1 中,由于Build()
将由 Autofac 本身处理,我可以在哪里进行初始化?
谢谢
解决方案
我知道了。我们可以在 Autofac 构建时使用回调
builder.RegisterBuildCallback(c => {
c.Resolve<IMessageQueueService>();
});
请参阅此 Autofac 文档
推荐阅读
- c# - NLog 变量值的编程更改未生效
- java - Spring-WS:如何发送已经封装的消息?
- c# - 如何遍历许多具有相似名称的组合框?
- angular - 转换对象列表并通过与相同的 Id 值比较转换为不同的格式
- java - Spring boot maven多模块项目:编译失败找不到符号
- typescript - 量角器 - 黄瓜:如果验证失败,则继续场景验证步骤,而不是跳过
- node.js - 如何从nodejs将一些数据插入到excel的单元格中
- django - 我的引导下拉项目不可点击(显示)
- c++ - 在 C++ 中打印 3 维数组的内容 .. 它的第 1 维来自索引,第 2 维来自另一个数组,第 3 维来自另一个数组?
- sql - 使用嵌套数组将 JSON 文件导入 SQL Server 表