2017-05-26 20 views
0

ASP.NETコア構成の公式ドキュメントを閲覧すると、次のサンプルが見つかります。これは他のサンプルでも支配的です。カスタムASP.NETコアオプションはIOptions <>を実装する必要がありますか?

public class MyOptions 
{ 
    public MyOptions() 
    { 
     // Set default value. 
     Option1 = "value1_from_ctor"; 
    } 
    public string Option1 { get; set; } 
    public int Option2 { get; set; } = 5; 
} 

https://docs.microsoft.com/en-us/aspnet/core/fundamentals/configuration

私は、ASP.NETのコアのキャッシュのレポを閲覧すると、Microsoftのチームがそれをしない方法に若干の差が認められました。

public class MemoryCacheOptions : IOptions<MemoryCacheOptions> 
{ 
    // removed stuff 

    MemoryCacheOptions IOptions<MemoryCacheOptions>.Value 
    { 
     get { return this; } 
    } 
} 

https://github.com/aspnet/Caching/blob/dev/src/Microsoft.Extensions.Caching.Memory/MemoryCacheOptions.cs

IOptions <>を実装することの利点は何ですか?どのような種類の「魔法」が私たちに与えるのですか?

答えて

0

いいえ、インターフェイスを実装する必要はありません。私が知る限り、それはいかなる価値も提供しません。クラス内のコードの大部分はかなり古く(2〜3年)、以前のオプション実装の残り物かもしれません。実際には、私はそれが安全に取り外すことができると推測します。

0

ASP.NET Core githubに関する質問を投稿し、開発者の1人から回答を得ました。 IOptions <>を実装することで、Optionsインフラストラクチャを設置しなくても単体テストで簡単に使用することができます。

関連する問題