AppContext.SetSwitch(String, Boolean) Metoda

Definice

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 je False.

    <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.

Platí pro

Viz také