与.netcore和.net 4.x兼容的配置

时间:2018-10-17 04:20:18

标签: .net .net-core

我正在制作一个包装库,使用户能够调用使用无参数构造函数的.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"
  }
}

0 个答案:

没有答案