2016-08-16 58 views
3

我們有一個應用程序庫,我們希望更新該應用程序庫以使用ASP.NET Core和以前版本的ASP.NET。這個庫目前依賴於ConfigurationManager類來從Web.config中讀取設置。隨着ASP.NET核心配置的變化,是否有建議的方式來創建一個可以從ASP.NET Core Web應用程序和preASP.NET核心Web應用程序讀取配置的庫?更新庫配置以使用ASP.NET Core

用於讀取配置設置的當前邏輯示例。

using System.Configuration; 

namespace Test.MyLibrary 
{ 
    public class MyLibrarySettings : ConfigurationSection 
    { 

     private static MyLibrarySettings settings = ConfigurationManager.GetSection("MyLibrarySettings") as MyLibrarySettings; 

     public static MyLibrarySettings Settings 
     { 
      get 
      { 
       return settings; 
      } 
     } 

     public string SomeSettingValue 
     { 
      get { return (string)this["someSettingValue"]; } 
      set { this["someSettingValue"] = value; } 
     } 
    } 
} 

回答

1

對於ASP.NET核心可以直接使用的IConfiguration實例,即 表示一組鍵/值應用的配置屬性:

public interface IConfiguration 
{ 
    /// <summary> 
    /// Gets or sets a configuration value. 
    /// </summary> 
    /// <param name="key">The configuration key.</param> 
    /// <returns>The configuration value.</returns> 
    string this[string key] { get; set; } 

    ... 
} 

所以你可以寫代碼等

private IConfiguration _configuration; 

    public string SomeSettingValue 
    { 
     get { return (string)_configuration["someSettingValue"]; } 
     set { _configuration["someSettingValue"] = value; } 
    } 

請記住,ConfigurationBuilder.Build()方法返回IConfigurationRoot,它從繼承:

/// <summary> 
/// Represents the root of an <see cref="IConfiguration"/> hierarchy. 
/// </summary> 
public interface IConfigurationRoot : IConfiguration 
+0

感謝您的回答,但我目前尚不清楚是否有此庫讀取配置設置的方式,無論使用的Web應用程序是否使用ASP.NET核心或預ASP的.NET核心。 IConfiguation接口是ASP.NET核心的新功能,從我可以告訴的所以不適用於preASP.NET Core應用程序。可能告訴我,我的配置設置不正確。 – qdx47