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.ThrowOnExceptiontrue, který umožňuje starší chování. 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 autorům knihoven poskytovat jednotný mechanismus odhlášení pro nové funkce pro své uživatele. Vytvoří volně propojený kontrakt mezi součástmi za účelem sdělení žádosti o odhlášení. Tato funkce je obvykle důležitá, když dojde ke změně stávajících funkcí. Naopak pro nové funkce už existuje implicitní výslovný souhlas.
Metoda SetSwitch je volána aplikací (nebo knihovnou), která deklaruje hodnotu 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 původní chování. 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.
Note
Pro názvy přepínačů je výhodné použít konzistentní formát, protože jde o formální kontrakt vystavený knihovnou. Následují dva běžné formáty.
- přepínač.obor názvů.název přepínače
- přepínač.knihovna.název přepínače
U aplikací spuštěných v .NET Framework lze kromě nastavení hodnoty přepínače nastavit také programově:
Přidáním názvu přepínače a hodnoty do elementu <AppContextSwitchOverrides> v <části 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 hodnoty řetězce, jejíž název je název přepínače do HKLM\SOFTWARE\Microsoft\. NETFramework\AppContext (a HKLM\SOFTWARE\Wow6432Node\Microsoft\. NETFramework\AppContext) podklíče v registru. Jeho hodnota musí být řetězcová reprezentace Boolean , kterou lze analyzovat metodou Boolean.Parse ; to znamená, že musí být "True", "true", "False" nebo "false".
Pokud položka registru existuje, její hodnota se přepíše argumentem isEnabled , když SetSwitch je volána. To znamená, že nejnovější 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.