答えて

12

ConfigurationManagerスタティッククラスは、一般にASP.NETコアでは使用できません。その代わりに、新しいConfigurationBuilderシステムと強く入力された構成を使用する必要があります。例えば

は、デフォルトでは、コンフィギュレーションは、次のようなものを使用して、あなたのStartupクラスで構築されています

public Startup(IHostingEnvironment env) 
{ 
    var builder = new ConfigurationBuilder() 
     .SetBasePath(env.ContentRootPath) 
     .AddJsonFile("appsettings.json", optional: true, reloadOnChange: true) 
     .AddJsonFile($"appsettings.{env.EnvironmentName}.json", optional: true) 
     .AddEnvironmentVariables(); 
    Configuration = builder.Build(); 
} 

これはappsettings.jsonファイルから設定をロードし、キーに設定ルートを追加します。あなたはのAppSettingsを持っている場合は、次のようなファイル:

{ 
    "Logging": { 
    "IncludeScopes": false, 
    "LogLevel": { 
    "Default": "Debug", 
    "System": "Information", 
    "Microsoft": "Information" 
    } 
    }, 
    "ThreadSettings" : { 
    "MaxThreads" : 4 
    } 
} 

次にあなたが強く、次のようなThreadSettingsクラス型付け作成することができます。

public class ThreadSettings 
{ 
    public int MaxThreads {get; set;} 
} 

最後に、あなたはこの強く型付けされた設定クラスをバインドすることができますがConfigureServicesメソッドにConfigureメソッドを追加して構成してください。

using Microsoft.Extensions.Configuration; 
public void ConfigureServices(IServiceCollection services) 
{ 
    services.Configure<ThreadSettings>(Configuration.GetSection("ThreadSettings")); 
} 

設定クラスは、コンストラクタに注入することによって、任意の場所から注入してアクセスできます。たとえば:あなたは本当に基本的な設定にアクセスする必要がある場合

public class MyFatController 
{ 
    private readonly int _maxThreads; 
    public MyFatController(ThreadSettings settings) 
    { 
     maxThreads = settings.MaxThreads; 
    } 
} 

は最後に、あなたも、あなたのクラスでそれを利用できるようにConfigureServicesにそれを注入することができます。

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddSingleton(Configuration); 
} 

あなたはdocs上または上の設定についての詳細を読むことができvariousblogs

関連する問題