小编Asa*_*Ali的帖子

如何从 autofac 容器解析依赖项(在嵌套 LifetimeScope 中注册)

有什么方法可以解决容器中的依赖关系(实际上是在嵌套的 LifetimeScope 中注册的,而不是在容器中注册的)?

实际执行说明:

我有包含当前用户的基本信息的ApplicationContext类(在其构造函数中注入)。IServiceProvider它首先解析IHttpContextAccessorfrom serviceProvider,然后从 中提取用户信息httpContextAccessor.HttpContextApplicationContext类被注入到所有存储库/服务中。

但是,在一些静态类中,我正在ApplicationContext从静态 IoC 类(包装在其中的 autofac 容器)解析类。我认为这是唯一的解决方案,因为我无法注入静态构造函数。

我正在实现事件总线,我为其创建了EventBusContext从事件数据接收用户信息的类。

ApplicationContext当它获取为 null 时(这意味着此执行不是从 Http Request 开始) ,类才会尝试解析并EventBusContext从中IServiceProvider提取用户信息。HttpContext

一旦EventBus类从 RabbitMQ 接收到事件,它就会创建EventBusConext类,将用户信息添加到其中,并将其动态注册到新创建的嵌套中LifetimeScope,然后解析该类EventHandler并调用 Handle 方法(通过反射)。

一切都很完美! 仅当使用任何从静态类EventHandler解析类的类时才会出现此问题,因为静态类在内部尝试从 autofac 容器(包装在其中)解析,但未能成功。ApplicationContextIoCIoCEventBusContext

c# asp.net autofac event-bus

2
推荐指数
1
解决办法
1267
查看次数

标签 统计

asp.net ×1

autofac ×1

c# ×1

event-bus ×1