2016-08-16 3 views
3

Wir haben eine Anwendungsbibliothek, die aktualisiert werden soll, um sowohl mit ASP.NET Core als auch mit früheren Versionen von ASP.NET zu funktionieren. Diese Bibliothek hängt derzeit von der ConfigurationManager-Klasse ab, um Einstellungen aus Web.config zu lesen. Gibt es mit den Änderungen an der Konfiguration im ASP.NET-Kern eine Möglichkeit, eine Bibliothek zu erstellen, mit der die Konfiguration sowohl von einer ASP.NET Core-Webanwendung als auch von einer preasP.NET-Kernwebanwendung gelesen werden kann?Aktualisieren der Bibliothekskonfiguration für die Arbeit mit ASP.NET Core

Beispiel der aktuellen Logik zum Lesen der Konfigurationseinstellungen.

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; } 
     } 
    } 
} 

Antwort

1

Für ASP.NET-Core Sie direkt Instanz IConfiguration verwenden können, dass einen Satz von Schlüssel/Wert-Anwendungskonfigurationseigenschaften dar:

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; } 

    ... 
} 

so können Sie Code wie

private IConfiguration _configuration; 

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

Beachten Sie, dass die Methode ConfigurationBuilder.Build() IConfigurationRoot zurückgibt, die vongeerbt wird:

+0

Danke für die Antwort, aber ich bin immer noch nicht klar, ob es eine Möglichkeit für diese Bibliothek gibt, die Konfigurationseinstellungen zu lesen, unabhängig davon, ob die Webanwendung ASP.NET Core oder Pre-ASP verwendet .NET-Kern Die IConfiguation-Schnittstelle ist neu für ASP.NET-Kern von dem, was ich sagen kann, so würde nicht mit einer Pre-ASP.NET Core-Anwendung arbeiten. Wahrscheinlich sagt mir ich habe meine Konfiguration falsch eingerichtet. – qdx47

Verwandte Themen