提问人:Master 提问时间:11/15/2023 最后编辑:StevenMaster 更新时间:11/15/2023 访问量:37
如何从程序 .cs 或绑定调用 GetService
How to invoke GetService from program.cs or bindings
问:
我目前注入了我的类依赖关系。我使用这个类来获取存储在 AWS 中的密钥。ISecretManager
我可以使用机密来创建更多的依赖注入
Services.AddScoped<IDbContext>(
x => new DbContext(
Context.Configuration,
x.GetService<ISecretManager>().Get("DB")))
现在我陷入了困境。我需要启用Redis缓存,但该值存储在机密中。
Services.AddStackExchangeRedisCache(options =>
{
//secret value goes here
options.Configuration = // GetService<ISecretManager>().Get("REDIS")
});
如何获取服务调用,以便填充 Redis 连接字符串?我也可以在我的 ASP.NET Core Web 应用程序的程序.cs中实现这一点吗?ISecretManager
答:
1赞
Qiang Fu
11/15/2023
#1
var value = Services.BuildServiceProvider().GetService<ISecretManager>().Get("REDIS");
Services.AddStackExchangeRedisCache(options => {
options.Configuration = value;
});
评论
1赞
Master
11/16/2023
谢谢你,正是我想要的。
评论
builder.Configuration.GetConnectionString(...)
或者你真的使用 .NET的用户密钥builder.Configuration["Section:Secret"]
ISecretManager
ISecretManager