本文由 发布,转载请注明出处,如有问题请联系我们! 发布时间: 2021-06-03重新整理 .net core 实践篇—————配置系统之环境配置[九]

加载中

分类整理 .net core 实践活动篇—————配备系统之自然环境配备[九]

序言

在现如今在互联网技术微服务架构较为可用的状况下,docker 可以说一个神器。每一次大家装包docker的情况下全是可用docker 的环境变量,那麼环境变量里边会设定系统变量,这个时候必须大家的运用可以鉴别到这种系统变量并做出相对应的挑选。

可用情景:

docker 软件环境

k8s 软件环境

由于她们全是防护体制的,因此系统变量可以充分发挥其很好的功效。

文章正文

引进:microsoft.extensions.configuration.environmentVariables 这一包。

设定系统变量:

相匹配的lauchSettings.json 以下:

{
  "profiles": {
    "ConfigureDemo": {
      "commandName": "Project",
      "commandLineArgs": "-k1=value4",
      "environmentVariables": {
        "section1__key2": "value2",
        "key1": "value1"
      }
    }
  }
}

这一section1__key2,section1和key2 中间是2个_,做为她们的分层次标记。

编码:

IConfigurationBuilder builder = new ConfigurationBuilder();
builder.AddEnvironmentVariables();

var configurationRoot = builder.Build();
Console.WriteLine($"key1:{configurationRoot["key1"]}");

var section = configurationRoot.GetSection("section1");
Console.WriteLine($"key2:{section["key2"]}");

运作結果:

无尽套娃方式也是可用的,前边基本原理早已讲过去了,这儿只演试编码。

{
  "profiles": {
    "ConfigureDemo": {
      "commandName": "Project",
      "commandLineArgs": "-k1=value4",
      "environmentVariables": {
        "section1__key2": "value2",
        "key1": "value1",
        "section2__section3__key3": "value3"
      }
    }
  }
}

编码:

IConfigurationBuilder builder = new ConfigurationBuilder();
builder.AddEnvironmentVariables();

var configurationRoot = builder.Build();
Console.WriteLine($"key1:{configurationRoot["key1"]}");

var section = configurationRoot.GetSection("section1");
Console.WriteLine($"key2:{section["key2"]}");

var section2 = configurationRoot.GetSection("section2");
var section3 = section2.GetSection("section3");
Console.WriteLine($"key3:{section3["key3"]}");

除开上边的__能够 做为section的分层次符以外,:也是能够 的。

下边演试作为前缀过虑:

{
  "profiles": {
    "ConfigureDemo": {
      "commandName": "Project",
      "commandLineArgs": "-k1=value4",
      "environmentVariables": {
        "key1": "value1",
        "k8s_key2": "value2" 
      }
    }
  }
}

编码:

IConfigurationBuilder builder = new ConfigurationBuilder();
builder.AddEnvironmentVariables("k8s_");

var configurationRoot = builder.Build();

Console.WriteLine($"key1:{configurationRoot["key1"]}");
Console.WriteLine($"key2:{configurationRoot["key2"]}");

結果:

就是并不是k8s_会被过虑掉。

下一节 配备系统之强种类配备。

之上仅仅本人梳理,若有不正确,望请指导,感谢。

评论(0条)

刀客源码 游客评论