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

參數的值。

例外狀況

switchNamenull

switchNameEmpty

範例

下列程式程式碼會將名為 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 方法來檢查參數的值。

注意

使用參數名稱的一致格式很有説明,因為它們是由程式庫公開的正式合約。 以下是兩種明顯的格式。

  • 參數.命名空間.參數名稱
  • 參數.程式庫.參數名稱

對於在 .NET Framework 上執行的應用程式,除了以程式設計方式設定參數的值之外,也可以設定:

  • 將參數名稱和值新增至應用程式組態檔運行 > 時間區段中的 AppCoNtextSwitchOverrides <> 元素。 < 例如,下列會定義名為 的 Libraries.FPLibrary.UseExactFloatingPointComparison 參數,其值為 False

    <configuration>
       <runtime>
          <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" />
       </runtime>
    </configuration>
    
  • 藉由將名稱為交換器名稱的字串值新增至 HKLM\SOFTWARE\Microsoft\。NETFramework\AppCoNtext (和 HKLM\SOFTWARE\Wow6432Node\Microsoft\。NETFramework\AppCoNtext) 登錄中的子機碼。 其值必須是 方法可剖析 Boolean.ParseBoolean 字串表示;也就是說,它必須是 「True」、「true」、「False」 或 「false」。

如果登錄專案存在,則呼叫 時 SetSwitch ,引數會覆寫 isEnabled 其值。 也就是說,方法的最新呼叫 SetSwitch 會覆寫登錄、應用程式組態檔中或先前對 SetSwitch 方法的呼叫中所定義的值。

適用於

另請參閱