AppContext.SetSwitch(String, Boolean) 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
設定參數的值。
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 方法來檢查參數的值。
注意
使用參數名稱的一致格式很有説明,因為它們是由程式庫公開的正式合約。 以下是兩種明顯的格式。
- 參數.命名空間.參數名稱
- 參數.程式庫.參數名稱
對於在 .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.Parse 的 Boolean 字串表示;也就是說,它必須是 「True」、「true」、「False」 或 「false」。
如果登錄專案存在,則呼叫 時 SetSwitch ,引數會覆寫 isEnabled
其值。 也就是說,方法的最新呼叫 SetSwitch 會覆寫登錄、應用程式組態檔中或先前對 SetSwitch 方法的呼叫中所定義的值。