我希望能够构建.Net标准库,无论是从Net Framework还是Net Core应用程序调用它们,都可以检索自己的配置信息。
System.Configuration.ConfigurationManager已添加到Net Standard。我已经证明我可以使用它从传统的app或web.config文件中提取,例如:
var value = ConfigurationManager.AppSettings["testString"];
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<appSettings>
<add key="testString" value="xxwx"/>
<add key="testInt" value="234"/>
<add key="testBool" value="true"/>
</appSettings>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1"/>
</startup>
</configuration>
我希望能够使用appettings.json文件中的相同代码来提取相同的值。如下所示:
{
"appSettings": [
{
"Key": "testString",
"Value": "xxwx"
},
{
"Key": "testInt",
"Value": "234"
},
{
"Key": "testBool",
"Value": "true"
}
]
}
有人可以告诉我,如果可以使用Net Standard 2.0中的System.Configuration读取appSettings.json文件吗?这里的真正目的是,我不希望消费应用程序需要了解库的配置参数。我还希望能够使用Net Framework和Net Core应用程序中的相同库。或者,是否有更好的方法来实现这一目标?
答案 0 :(得分:0)
据我所知,该功能由Microsoft.Extensions.Configuration
,which is compatible with .NETStandard 2.0提供。
您可以在此处查看加载配置的示例:
var builder = new ConfigurationBuilder()
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("appsettings.json", optional: false, reloadOnChange: true)
.AddJsonFile($"appsettings.{EnvironmentName}.json", optional: true, reloadOnChange: true)
.AddEnvironmentVariables();
Configuration = builder.Build();
这将加载appsettings.json
文件以及特定于环境的应用设置文件(例如:appsettings.Production.json
)。
要获取设置,您可以在Microsoft Docs。
中查看有关该设置的更多信息