将 Key Vault 设置绑定到 class

Bind Key Vault settings to class

在 ASP.NET Core 中,如果从 JSON app.settings 文件中读取配置,我可以像这样将一个部分绑定到一个对象:

services.Configure<MyPocoConfig>(Configuration.GetSection("Section"))

是否有一种直接的方法可以使用从 Azure Key Vault 读取的一组设置来执行此操作?我正在按照此处 MSDN 文档中所述的指南进行操作 https://docs.microsoft.com/en-us/azure/key-vault/vs-key-vault-add-connected-service#access-your-secrets-in-code

我可以像这样手动映射它们:

services.Configure<MyPocoConfig>(myPoco =>
                {
                    myPoco.Option1 = Configuration["Option1"];
                    myPoco.Option2 = Configuration["Option2"];
                });

我只是想知道是否有一种方法可以自动映射它们,因为它适用于存储在 app.settings JSON 中的配置。我确信它可以通过反射来完成,但我希望有一个内置的方式。

我尝试使用文章中描述的类别设置语法将设置放入类别中,并使用 services.Configure<MyPocoConfig>(Configuration.GetSection("category")) 阅读它们,但这不起作用。

编辑:

从 2020 年起, 现在可以使用类别--设置语法将设置放入类别中,并像 services.Configure<MyPocoConfig>(Configuration.GetSection("category"))

一样阅读它们

您可以通过按照以下模式命名您的 Secret 来实现相同的目的。

 Section--Option1
 Section--Option2

您可以使用以下方法按部分获取值,.NetCore 会自动映射它。

services.Configure<MyPocoConfig>(Configuration.GetSection("Section"))

参考linkhttps://docs.microsoft.com/en-us/aspnet/core/security/key-vault-configuration?view=aspnetcore-2.2#bind-an-array-to-a-class