Language

AppContext.SetSwitch(String, Boolean) メソッド

定義

スイッチの値を設定します。

public:
 static void SetSwitch(System::String ^ switchName, bool isEnabled);
public static void SetSwitch(string switchName, bool isEnabled);
static member SetSwitch : string * bool -> unit
Public Shared Sub SetSwitch (switchName As String, isEnabled As Boolean)

パラメーター

switchName
String

スイッチの名前。

isEnabled
Boolean

スイッチの値。

例外

switchName は nullです。

switchName は Emptyです。

例

次のコード行では、 Switch.AmazingLib.ThrowOnException という名前のスイッチを true に設定します。これにより、従来の動作が可能になります。 ライブラリは、 TryGetSwitch メソッドを呼び出すことによって、ライブラリ コンシューマーがスイッチの値を設定したかどうかを確認できます。

AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true);
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true)
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", True)

注釈

AppContext クラスを使用すると、ライブラリ ライターは、ユーザーの新機能に対して統一されたオプトアウト メカニズムを提供できます。 オプトアウト要求を通信するために、コンポーネント間で疎結合コントラクトを確立します。 この機能は、通常、既存の機能に変更が加えられた場合に重要です。 逆に、新しい機能の暗黙的なオプトインが既に存在します。

SetSwitch メソッドは、依存ライブラリが定義するスイッチ (常にBoolean値) の値を宣言するために、アプリケーション (またはライブラリ) によって呼び出されます。 スイッチは常に暗黙的に falseされ、新しい動作が提供されます。 スイッチを true に設定すると有効になり、従来の動作が提供されます。 スイッチを明示的に false に設定すると、新しい動作も提供されます。 依存ライブラリは、 TryGetSwitch メソッドを呼び出すことによって、スイッチの値を確認できます。

Note

スイッチ名はライブラリによって公開される正式なコントラクトであるため、一貫性のある形式を使用すると便利です。 2 つの明白な形式を次に示します。

  • スイッチ。名前空間。switchname
  • スイッチ。ライブラリ。スイッチ名

.NET Framework で実行されているアプリケーションの場合、スイッチの値をプログラムで設定するだけでなく、次のように設定することもできます。

  • アプリケーション構成ファイルの <> セクションの > 要素にスイッチの名前と値を追加します。 たとえば、次の例では、値がLibraries.FPLibrary.UseExactFloatingPointComparisonFalseという名前のスイッチを定義します。

    <configuration>
       <runtime>
          <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" />
       </runtime>
    </configuration>
    
  • スイッチの名前を持つ文字列値を HKLM\SOFTWARE\Microsoft\ に追加します。NETFramework\AppContext (and HKLM\SOFTWARE\Wow6432Node\Microsoft\.レジストリ内の NETFramework\AppContext) サブキー。 その値は、Boolean メソッドで解析できるBoolean.Parseの文字列形式である必要があります。つまり、"True"、"true"、"False"、または "false" である必要があります。

レジストリ エントリが存在する場合、isEnabledが呼び出されると、その値は SetSwitch 引数によって上書きされます。 つまり、 SetSwitch メソッドの最新の呼び出しは、レジストリ、アプリ構成ファイル、または以前の SetSwitch メソッドの呼び出しによって定義された値をオーバーライドします。

適用対象

こちらもご覧ください