代码之家  ›  专栏  ›  技术社区  ›  08Dc91wk

如何使用配置。json为Visual Studio 2015/DNX项目设置特定于环境的变量?

  •  1
  • 08Dc91wk  · 技术社区  · 11 年前

    我有一个Visual Studio 2015解决方案,由针对DNX框架的项目组成。我一直在本地工作,但我计划部署到Azure环境(dev/test/prod)。当然,该解决方案根据环境使用不同的数据库连接字符串和其他变量。在过去,我使用云配置文件来设置这些变量,并使用 CloudConfigurationManager .

    我知道我需要使用配置。json文件。我的启动中有以下代码。cs文件:

    public Startup(IHostingEnvironment env, IApplicationEnvironment app)
    {
        Configuration = new ConfigurationBuilder(app.ApplicationBasePath)
            .AddJsonFile("config.json")
            .AddJsonFile($"config.{env.EnvironmentName}.json", optional: true)
            .AddEnvironmentVariables()
            .Build();
    
        Configuration.Set("ASPNET_ENV", "Development");
    }
    

    我的配置。json文件当前为空对象 { } 。如何将变量添加到此文件(语法?),我如何从代码中访问它们?

    2 回复  |  直到 11 年前
        1
  •  1
  •   Community Mohan Dere    9 年前

    请注意启动代码中的这一行:

    .AddJsonFile($"config.{env.EnvironmentName}.json", optional: true)
    

    这将添加一个附加的JSON配置文件,该文件的名称取决于您的环境名称。因此,在项目中添加一个新文件,名为:

    config.<environment-name>.json
    

    并在其中设置详细信息,例如:

    {
      "AppSettings": {
        "SomeVariable": "Blah"
      },
      "Data": {
        "YourConnectionString": {
          "ConnectionString": "<connection string here>"
        }
      }
    }
    

    要阅读配置,这里有一个很好的答案: Using IConfiguration globally in mvc6

        2
  •  0
  •   Erik Schierboom    11 年前

    您可以使用普通的旧JSON。例如,以下是如何定义连接字符串:

    {
      "Foo": "Bar"
    }
    

    要访问配置值,请执行以下操作:

    config.Get("username")
    

    或:

    config["username"];
    

    您可以在此处找到更多信息: http://docs.asp.net/en/latest/fundamentals/configuration.html