AppContext.TryGetSwitch(String, Boolean) AppContext.TryGetSwitch(String, Boolean) AppContext.TryGetSwitch(String, Boolean) AppContext.TryGetSwitch(String, Boolean) Method

Definition

Versucht, den Wert eines Schalters abzurufen.Tries to get the value of a switch.

public:
 static bool TryGetSwitch(System::String ^ switchName, [Runtime::InteropServices::Out] bool % isEnabled);
public static bool TryGetSwitch (string switchName, out bool isEnabled);
static member TryGetSwitch : string * bool -> bool
Public Shared Function TryGetSwitch (switchName As String, ByRef isEnabled As Boolean) As Boolean

Parameter

switchName
String String String String

Der Name des Schalters.The name of the switch.

isEnabled
Boolean Boolean Boolean Boolean

Wenn diese Methode zurückkehrt, enthält sie den Wert switchName, wenn switchName gefunden wurde, oder false, wenn switchName nicht gefunden wurde.When this method returns, contains the value of switchName if switchName was found, or false if switchName was not found. Dieser Parameter wird nicht initialisiert übergeben.This parameter is passed uninitialized.

Gibt zurück

true, wenn switchName festgelegt wurde und das isEnabled-Argument den Wert des Schalters enthält, andernfalls false.true if switchName was set and the isEnabled argument contains the value of the switch; otherwise, false.

Ausnahmen

Beispiele

Im folgenden Beispiel wird bestimmt, ob ein bibliothekconsumer einen Switch Switch.AmazingLib.ThrowOnExceptionmit dem Namen festgelegt hat.The following example determines whether a library consumer has set a switch named 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
      }
   }
}
Public Class AmazingLib

   Private shouldThrow As Boolean

   Public Sub PerformAnOperation()
      If Not AppContext.TryGetSwitch("Switch.AmazingLib.ThrowOnException", shouldThrow) Then 
         ' 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.
      End If

      ' The library can use the value of shouldThrow to throw exceptions or not.
      If shouldThrow Then
         ' old code
      Else 
          ' new code
      End If
   End Sub
End Class

Hinweise

Mit AppContext der-Klasse können Bibliotheks Schreiber einen einheitlichen Opt-Out-Mechanismus für neue Funktionen für Ihre Benutzer bereitstellen.The AppContext class enables library writers to provide a uniform opt-out mechanism for new functionality for their users. Sie richtet einen lose gekoppelten Vertrag zwischen den Komponenten ein, um eine Anforderung zur Abwahl zu übermitteln.It establishes a loosely-coupled contract between components in order to communicate an opt-out request. Diese Möglichkeit ist in der Regel wichtig, wenn vorhandene Funktionalitäten verändert werden.This capability is typically important when a change is made to existing functionality. Im Gegensatz dazu existiert bereits eine implizite Auswahloption für neue Funktionalitäten.Conversely, there is already an implicit opt-in for new functionality.

Der Common Language Runtime füllt die einer AppContext -Instanz zugewiesenen Switches automatisch auf, indem die Registrierung und die Konfigurationsdatei der Anwendung gelesen werden.The common language runtime automatically populates the switches assigned to an AppContext instance by reading the registry and the application's configuration file. Der Wert dieser Switches kann dann überschrieben werden, und neue Switches werden durch Aufrufen der SetSwitch -Methode hinzugefügt.The value of these switches can then be overridden, and new switches added, by calling the SetSwitch method.

Eine Bibliothek ruft die TryGetSwitch -Methode auf, um zu überprüfen, ob Ihre Consumer den Wert des-Schalters deklariert haben, und anschließend entsprechend zu agieren.A library calls the TryGetSwitch method to check whether its consumers have declared the value of the switch and then act appropriately on it. Wenn der Schalter nicht definiert ist, ist die neue Funktionalität standardmäßig aktiviert.By default, if the switch is not defined, the new functionality is enabled.. Wenn der Schalter definiert ist und sein Wert ist false, wird die neue Funktionalität ebenfalls aktiviert.If the switch is defined and its value is false, the new functionality is also enabled. Wenn der Wert ist true, ist das Legacy Verhalten aktiviert.If its value is true, the legacy behavior is enabled.

Gilt für:

Siehe auch