首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AppSettings 5中的强类型ASP.NET配置

AppSettings 5中的强类型ASP.NET配置
EN

Stack Overflow用户
提问于 2015-10-15 07:09:29
回答 1查看 1.2K关注 0票数 2

使用WebApi 2时,我的web.config是

代码语言:javascript
复制
<connectionStrings>
    <add name="RavenHQ" connectionString="Url=http://localhost:8080;Database=ModelFarmDb" />    
</connectionStrings>

对于ASP.NET 5.0,我想不出如何编写config.json文件来做同样的事情。

我试过了

代码语言:javascript
复制
{
    "Data": {
        "RavenHQ": {
            ConnectionString: "Url=http://localhost:8080;Database=ModelFarmDb"
        }
    }
}

但不起作用。对于如何将web.config部分直接映射到config.json以避免破坏假定为web.config的其他库,有什么建议吗?

该应用程序在本地下运行,是Azure上的一个web应用程序。

非常感谢!

EN

回答 1

Stack Overflow用户

发布于 2015-10-16 18:31:52

在asp.net 5.0中,您以不同的方式完成了这一任务。我在这个例子中使用了json文件。如果需要添加xml文件,只需使用这些包Microsoft.Framework.Configuration.Xml并使用.AddXmlFile()方法

此示例使用beta 7。

创建一个AppSetting类

代码语言:javascript
复制
public class AppSetting
{
    public string Setting1 { get; set; }

    public string Setting2 { get; set; }

}

在启动文件中,使用本例中的配置添加json文件,即调用config.json

代码语言:javascript
复制
public Startup(IHostingEnvironment env, IApplicationEnvironment appEnv)
{       

    var builder = new ConfigurationBuilder()
        .SetBasePath(appEnv.ApplicationBasePath)
        .AddJsonFile("config.json")
        .AddXmlFile("thefilename")
        .AddJsonFile($"config.{env.EnvironmentName}.json", optional: true);

    builder.AddEnvironmentVariables();

    Configuration = builder.Build();
}

public IConfiguration Configuration { get; set; }

然后,您需要添加应用程序服务您的AppSetting类,以便可以注入它供以后使用。

代码语言:javascript
复制
services.Configure<AppSettings>(Configuration.GetSection("AppSettings"));

然后在控制器中或任何需要配置的地方注入IOptions<AppSettings>

代码语言:javascript
复制
public class SampleController : Controller
{

    private readonly AppSettings _appSettings;

    public SampleController(IOptions<AppSettings> appSettings)
    {            
        _appSettings = appSettings.Value;            
    }

}

这就是json的样子

代码语言:javascript
复制
{
  "AppSetting": {
    "Setting1": "Foo1",
    "Setting1": "Foo1"
  }
}

我从github的live.asp.net中获取了这些和平的代码

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/33142052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档