如何在AspNetCore.Diagnostics.HealthCheck.AddSqlServer()中使用conne



AddSqlServer健康检查有一个方法签名,该方法签名接受连接字符串的工厂。

public static IHealthChecksBuilder AddSqlServer(
this IHealthChecksBuilder builder,
Func<IServiceProvider, string> connectionStringFactory, ...)

我不太确定如何实现这一点。我有一个工厂,返回连接字符串,但它需要一些IOptions注入到它。另外,我不明白作为服务添加到构建器的工厂如何在添加健康检查的同一点上使用。我认为这是不可能的。

builder.Services.AddOptions() // some options added here
builder.Services.AddScoped<IConnectionStringFactory, ConnectionStringFactory>();
builder.Services.AddHealthChecks()
.AddSqlServer(_ =>
{
factoryCalled = true; // how do I get my factory here?
return "connectionstring";
});

这让我问他们打算如何使用这个?我是否需要提供工厂的新实例?如果是这种情况,那么这就变得不那么有趣了,因为我还需要手动创建需要注入工厂的所有内容。

我在内存中做这个,但是你应该能够在你的委托块中调用GetService:

builder.Services.AddHealthChecks()
.AddSqlServer(_ =>
{
var factory = builder.Services.GetService<IConnectionStringFactory>();
factoryCalled = true;
return factory.Build();
});

相关内容

  • 没有找到相关文章

最新更新