zoukankan      html  css  js  c++  java
  • [译]ASP.NET 5: New configuration files and containers

    原文: http://gunnarpeipman.com/2014/11/asp-net-5-new-configuration-files-and-containers/

    ASP.NET vNext提供了一种新的config文件. 能支持多种格式的config文件可以是.json .ini .xml. 另外你还可以写configuration handler用来处理你自定义格式的config文件.

    Configuration文件

    假设我们有3个config文件

    config.json

    {
        "ConnectionStrings": {
            "JsonConnectionString": "json connection string"
        }
    }
    

    config.xml

    <config>
        <ConnectionStrings>
            <XmlConnectionString>xml connection string</XmlConnectionString>
        </ConnectionStrings>
    </config>
    

    config.ini

    [ConnectionStrings]
    IniConnectionString = ini connection string
    

    上面的3个config都是一种结构尽管他们是不同的格式.

    依赖

    在我们加载config文件前我们需要添加一些依赖 打开project.json添加倒数第二行和第三行(Microsoft.Framework.Configuration.XXX):

    {
        // ...
    
        "dependencies": {
            "Kestrel": "1.0.0-alpha4",
            "EntityFramework.SqlServer": "7.0.0-alpha4",
            // ...
            "Microsoft.AspNet.StaticFiles": "1.0.0-alpha4",
            "Microsoft.Framework.ConfigurationModel.Json": "1.0.0-alpha4",
            "Microsoft.Framework.ConfigurationModel.Xml": "1.0.0-alpha4",
            "Microsoft.VisualStudio.Web.BrowserLink.Loader": "14.0.0-alpha4"
        }
    
        // ...
    }
    

    加载configuration文件

    public class Startup
    {
        public void Configure(IApplicationBuilder app)
        {
            // Setup configuration sources
            var configuration = new Configuration();
            configuration.AddJsonFile(“config.json”);
            configuration.AddIniFile(“config.ini”);
            configuration.AddXmlFile(“config.xml”);
            configuration.AddEnvironmentVariables();
     
            // …
        }
    }
    

    现在configuration文件已经加载进来了,现在让我们使用强大的configuration对象来读取config参数.

    读取configuration参数

    如果你像读取非string类型的参数你可以使用泛型方法Get<T>():

    var size = configuration.Get<int>(“Box:Size”);
    

    为什么我们需要多个configuration文件

    为什么我们需要configuration系统是这个样子的? 通过这样的configuration系统以下的场景得到支持:

    • 我们可以使用多个configurationcontainers
    • 我们可以在web和桌面程序中使用同样的配置文件.

    看看下面的代码.

    // Common configuration
    var configuration = new Configuration();
    configuration.AddJsonFile(“config.json”);
    configuration.AddIniFile(“config.ini”);
    configuration.AddXmlFile(“config.xml”);
    configuration.AddEnvironmentVariables();
     
    // Mailer configuration
    var emailConfiguration = new Configuration();
    emailConfiguration.AddIniFile(“advanced-mailer.ini”);
     
    // SMS configuration
    var smsConfiguration = new Configuration();
    smsConfiguration.AddXmlFile(“sms.config”);
    
  • 相关阅读:
    宿主机( win 7 系统) ping 虚拟机VMware( cent os 6.6 ) 出现“请求超时”或者“无法访问目标主机”的解决方法
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 23 合并K个排序链表
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 22 括号生成
    Java实现 LeetCode 21 合并两个有序链表
    Java实现 LeetCode 21 合并两个有序链表
    Java实现 LeetCode 21 合并两个有序链表
  • 原文地址:https://www.cnblogs.com/irocker/p/asp-net-5-new-configuration-files-and-containers.html
Copyright © 2011-2022 走看看