0

私はAzureでホストされているASP.NET Core 2アプリケーションを持っており、私のアプリケーション用に新しいアプリケーション設定MyNewSettingをAzure Portalに追加しました。コントローラでAzure AppSettingsを取得

コントローラからその設定にアクセスするにはどうすればよいですか?

怒鳴る私のコード:

public void ConfigureServices(IServiceCollection services) 
{ 
    services.AddOptions(); 

    services.Configure<AppSecrets>(Configuration); 
    services.AddSingleton<ITableRepositories, TableClientOperationsService>(); 
    //... 

マイコントローラー:

ここ
public class RecordController : Controller 
{ 
    const int MyNewSetting = 7; // this one to replace with Azure Setting one 
    private readonly ITableRepositories repository; 

    public RecordController(ITableRepositories rep) { 
     repository = rep; 
    } 

...私は FromServices注入を追加する、おそらく必要がありますが、私はそれが動作するかどうかわかりません

編集:

Folowing @dee_zgの答えは、次のコードは、おそらく仕事をすることができます:

public class RecordController : Controller 
{ 
    int MyNewSetting = 7; 
    private readonly ITableRepositories repository; 

    public RecordController(ITableRepositories rep) { 
     repository = rep; 
     int myInt; 
     if (int.TryParse(System.Environment.GetEnvironmentVariable("MY_NEW_SETTING"), 
         out myInt)) { 
      MyNewSetting = myInt; 
     }; 
    } 

答えて

1

あなたはに選択したいずれかのAppSettings["your-key"]コレクションからか、環境変数としてそれらを得ることができます:Environment.GetEnvironmentVariable("your-key")

そこからあなたのカスタムIOptionsにマップし、必要な場所に注入することができます。

+0

あなたは私の編集を見ることができますか、ありがとうございます – Serge

0

あなたにできることはたくさんあります。

  1. 使用Options and configuration objects

    オプションパターンは、関連する設定のグループを表すためにカスタムオプションクラスを使用しています。アプリケーション内の各フィーチャに対して分離されたクラスを作成することをお勧めします。

  2. IOptionsSnapshotを使用してください。

    IOptionsSnapshotは、構成ファイルが変更されたときに構成データを再ロードすることをサポートします。最小限のオーバーヘッドしかありません。 IOptionsSnapshotreloadOnChange: trueを使用すると、オプションはConfigurationにバインドされ、変更時にリロードされます。要するに

  3. ...(マニュアルを参照してください)

Configuration in ASP.NET Coreを見て、最高のそれであなたのニーズに適合し、持っているシナリオを決定!

これが役に立ちます。

+0

質問をする前にすでにその文書を見ました。さて、私は何を使うべきかを知っている、私は使用する方法を知らない、これが私がいくつかのコードを追加した理由です。 – Serge

+0

ドキュメントを見ましたか?それは実際にそれに例のコードを..... ...../ –

+0

ありがとう。例のコードが私の場合に役立つかどうか尋ねることはありません。 – Serge

関連する問題