ASP.NET 5: New configuration files and containers

來源:互聯網
上載者:User

標籤:

原文: 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 configurationvar configuration = new Configuration();configuration.AddJsonFile(“config.json”);configuration.AddIniFile(“config.ini”);configuration.AddXmlFile(“config.xml”);configuration.AddEnvironmentVariables(); // Mailer configurationvar emailConfiguration = new Configuration();emailConfiguration.AddIniFile(“advanced-mailer.ini”); // SMS configurationvar smsConfiguration = new Configuration();smsConfiguration.AddXmlFile(“sms.config”);

 

ASP.NET 5: New configuration files and containers

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.