无法将环境变量从.json文件提取到.NetCoreApp

时间:2018-09-06 05:46:00

标签: c# json

我已经在Visual Studio中创建了一个.NetCore应用程序,我希望从.json文件中获取连接字符串,我已经创建了.json文件launchSettings.json并添加了如图所示的配置变量。

 {
    "profiles": {
      "TwinSample": {
        "commandName": "Project",
        "environmentVariables": {
          "moduleEdgeHubConnectionString": "HostName=xxxx.xxx;DeviceId=xxxxx;ModuleId=xxxxxx;SharedAccessKey=xxxxx",
          "moduleEdgeAgentConnectionString": "HostName=xxxx.xxx;DeviceId=xxxx;ModuleId=xxxxx;SharedAccessKey=xxxxx"
        }
      }
    }
  }

当我执行它时,.cs项目中的连接字符串为Null,即moduleEdgeHubConnectionString,而moduleEdgeAgentConnectionString无法从.json文件中获取值。

private static string moduleEdgeHubConnectionString = Environment.GetEnvironmentVariable("moduleEdgeHubConnectionString");
   private static string moduleEdgeAgentConnectionString = Environment.GetEnvironmentVariable("moduleEdgeAgentConnectionString");

我还将“构建操作”之类的属性更改为“内容”,并复制到输出目录以始终复制。

您能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

在.net核心中,存储连接字符串的默认方式是在FlatList文件的 ConnectionStrings 部分中。

appsettings.json

要获取连接字符串,请使用框架"ConnectionStrings": { "moduleEdgeHubConnectionString": "HostName=xxxx.xxx;DeviceId=xxxxx;ModuleId=xxxxxx;SharedAccessKey=xxxxx", "moduleEdgeAgentConnectionString": "HostName=xxxx.xxx;DeviceId=xxxx;ModuleId=xxxxx;SharedAccessKey=xxxxx" } 接口扩展方法IConfiguration

GetConnectionString()

如果在不同的环境中需要使用不同的连接字符串,则可以随时添加新的var connectionstring = configuration.GetConnectionString("moduleEdgeHubConnectionString"): 文件。 查看此Actions SDK了解更多详细信息