AppContext.TryGetSwitch(String, Boolean) Metoda

Definice

Pokusí se získat hodnotu přepínače.

public static bool TryGetSwitch(string switchName, out bool isEnabled);

Parametry

switchName
String

Název přepínače

isEnabled
Boolean

Když tato metoda vrátí, obsahuje hodnotu , switchName pokud switchName byl nalezen, nebo false pokud switchName nebyl nalezen. Tento parametr se předává neinicializovaný.

Návraty

true pokud switchName byl nastaven a isEnabled argument obsahuje hodnotu přepínače, falsejinak hodnota .

Výjimky

switchName je null.

switchName je Empty.

Příklady

Následující příklad určuje, jestli uživatel knihovny nastavil přepínač s názvem Switch.AmazingLib.ThrowOnException.

public class AmazingLib
{
   private bool shouldThrow;

   public void PerformAnOperation()
   {
      if (!AppContext.TryGetSwitch("Switch.AmazingLib.ThrowOnException", out shouldThrow)) {
         // This is the case where the switch value was not set by the application.
         // The library can choose to get the value of shouldThrow by other means.
         // If no overrides or default values are specified, the value should be 'false'.
         // A false value implies the latest behavior.
      }

      // The library can use the value of shouldThrow to throw exceptions or not.
      if (shouldThrow) {
         // old code
      }
      else {
          // new code
      }
   }
}

Poznámky

Třída AppContext umožňuje zapisovačům knihoven poskytovat uživatelům jednotný mechanismus odhlášení nových funkcí. Vytváří volně vázanou smlouvu mezi komponentami za účelem sdělení žádosti o vyjádření výslovného nesouhlasu. Tato funkce je obvykle důležitá, když se provede změna stávajících funkcí. Naopak už existuje implicitní výslovný souhlas s novými funkcemi.

Modul CLR (Common Language Runtime) automaticky naplní přepínače přiřazené k AppContext instanci čtením registru a konfiguračního souboru aplikace. Hodnotu těchto přepínačů lze potom přepsat a přidat nové přepínače voláním SetSwitch metody .

Knihovna volá metodu TryGetSwitch ke kontrole, zda její příjemci deklarovali hodnotu přepínače, a pak na ni odpovídajícím způsobem zareagujte. Pokud přepínač není definovaný, jsou ve výchozím nastavení povoleny nové funkce. Pokud je přepínač definovaný a jeho hodnota je false, jsou také povoleny nové funkce. Pokud je truejeho hodnota , starší verze chování je povolena.

Platí pro

Produkt Verze
.NET Core 1.0, Core 1.1, Core 2.0, Core 2.1, Core 2.2, Core 3.0, Core 3.1, 5, 6, 7, 8, 9, 10
.NET Framework 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
.NET Standard 1.3, 1.4, 1.6, 2.0, 2.1
UWP 10.0

Viz také