我想在RunCheckAsync期间调用注入类(Scoped)中的特定方法
https://github.com/dotnet/aspnetcore/blob/bf50999cd8e60d4c683b772dffa9898794a8433a/src/HealthChecks/HealthChecks/src/DefaultHealthCheckService.cs#L56
此处为运行状况检查的注册表services.AddHealthChecks() .AddDbContextCheck<MyDbCtxContext>("dbContextChecks", null,HealthCheckTagsConstants.ReadinessTags);
与我的“MyDbCtxContext”相关的connectionString是动态的,我需要在HttpRequest中检索一个元数据(例如客户的标识符),并调用我注入的类中的方法“SetIdentifier”。
我尝试创建一个中间件来检索信息并指定标识符,但是中间件是在这里创建的范围之外管理的
https://github.com/dotnet/aspnetcore/blob/bf50999cd8e60d4c683b772dffa9898794a8433a/src/HealthChecks/HealthChecks/src/DefaultHealthCheckService.cs#L78
在这一点上,有两个范围
- 当HttpRequest被创建(由框架管理)时,中间件从该作用域中检索我的类
- 调用RunCheckAsync方法时
我该怎么办?我怎样才能让我的类进入第二个范围?
1条答案
按热度按时间cyej8jka1#
为了完成我的用例,
在我的业务中使用的所有类都注入了'IDentifierProvider',这个类的目的是提供'IdentifierName'(客户端名称)。
此类公开一个方法“SetIdentifier”以指定当前范围中的客户端名称。
我想将我的标识符设置到DefaultHealthCheckService创建的范围中