我正在制作一个包装库,使用户能够调用使用无参数构造函数的.net标准库,该结构将从托管应用程序的配置中读取。
我正在尝试设置此库,以使其与.net和.net核心应用程序兼容,但是我不确定如何在内部处理配置。
以前,我们只支持.net 4.x,所以我们将使用Configuration节并在其中分配属性。
我还希望能够使用此新应用程序支持appsettings.json方法,而我只是不知道要搜索什么才能知道如何针对两者进行此操作。
我不想让用户不必担心如何设置他们的配置类,只是他们将正确的值放在配置文件中的正确位置就可以了。
using System.Configuration;
public class Credentials : ConfigurationSection
{
public Credentials() { }
public Credentials(string apiKey, string secretKey) : this()
{
ApiKey = apiKey;
SecretKey = secretKey;
}
[ConfigurationProperty(nameof(Secret))]
public string Secret
{
get => (string)this[nameof(Secret)];
set => this[nameof(Secret)] = value;
}
[ConfigurationProperty(nameof(ApiKey))]
public string ApiKey
{
get => (string)this[nameof(ApiKey)];
set => this[nameof(ApiKey)] = value;
}
[ConfigurationProperty(nameof(Endpoint))]
public string Endpoint
{
get => (string)this[nameof(Endpoint)];
set => this[nameof(Endpoint)] = value;
}
}
配置:
<configuration>
<configSections>
<section name="mysettings" type="mysettingsclass, myassembly" />
</configSections>
<mysettings Endpoint="http://server/" ApiKey="API-1231213" Secret="somesecret"/>
</configuration>
appsettings.json
{
"MySettings": {
"Endpoint": "http://server/",
"ApiKey": "API-1231213",
"Secret": "somesecret"
}
}