AppContext.SetSwitch(String, Boolean) Metoda
Definice
Důležité
Některé informace platí pro předběžně vydaný produkt, který se může zásadně změnit, než ho výrobce nebo autor vydá. Microsoft neposkytuje žádné záruky, výslovné ani předpokládané, týkající se zde uváděných informací.
Nastaví hodnotu přepínače.
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)
Parametry
- switchName
- String
Název přepínače
- isEnabled
- Boolean
Hodnota přepínače.
Výjimky
switchName
je null
.
switchName
je Empty.
Příklady
Následující řádek kódu nastaví přepínač s názvem Switch.AmazingLib.ThrowOnException
na true
, který umožňuje chování starší verze. Knihovna pak může zkontrolovat, jestli příjemce knihovny nastavil hodnotu přepínače voláním TryGetSwitch metody .
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true);
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true)
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", True)
Poznámky
Třída AppContext umožňuje zapisovačům knihoven poskytovat jednotný mechanismus pro odhlášení nových funkcí pro jejich uživatele. Za účelem komunikace s požadavkem na odhlášení vytvoří mezi komponentami volně vázanou smlouvu. Tato funkce je obvykle důležitá, když se změní stávající funkce. Naopak už existuje implicitní výslovný souhlas s novými funkcemi.
Metoda SetSwitch je volána aplikací (nebo knihovnou) k deklarování hodnoty přepínače (což je vždy Boolean hodnota), kterou definuje závislá knihovna. Přepínač je vždy implicitně false
, což poskytuje nové chování. Nastavením přepínače na true
ho povolíte, což poskytuje chování starší verze. Explicitní nastavení přepínače na false
také poskytuje nové chování. Závislá knihovna pak může zkontrolovat hodnotu přepínače voláním TryGetSwitch metody .
Poznámka
Pro názvy přepínačů je výhodné používat konzistentní formát, protože se jedná o formální kontrakt vystavený knihovnou. Níže jsou uvedené dva zřejmé formáty.
- Přepnout. obor názvů. název_přepínače
- Přepnout. knihovnu. název_přepínače
Pro aplikace spuštěné v rozhraní .NET Framework je možné kromě nastavení hodnoty přepínače prostřednictvím kódu programu nastavit také:
Přidáním názvu a hodnoty přepínače do elementu <AppContextSwitchOverrides> v oddílu <modulu runtime> konfiguračního souboru aplikace. Následující příklad definuje přepínač s názvem
Libraries.FPLibrary.UseExactFloatingPointComparison
, jehož hodnota jeFalse
.<configuration> <runtime> <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" /> </runtime> </configuration>
Přidáním řetězcové hodnoty, jejíž název je název přepínače, do HKLM\SOFTWARE\Microsoft\. NETFramework\AppContext (a HKLM\SOFTWARE\Wow6432Node\Microsoft\. PODklíče NETFramework\AppContext) v registru. Jeho hodnota musí být řetězcová reprezentace objektu Boolean , který může být parsován metodou Boolean.Parse ; to znamená, že musí být "True", "true", "False" nebo "false".
Pokud položka registru existuje, její hodnota se při SetSwitch zavolání přepíše argumentemisEnabled
. To znamená, že poslední volání SetSwitch metody přepíše hodnotu definovanou v registru, v konfiguračním souboru aplikace nebo předchozím voláním SetSwitch metody.