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

Definition

Legt den Wert eines Schalters fest.Sets the value of a switch.

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)

Parameter

switchName
String String String String

Der Name des Schalters.The name of the switch.

isEnabled
Boolean Boolean Boolean Boolean

Der Wert des Schalters.The value of the switch.

Ausnahmen

Beispiele

Mit der folgenden Codezeile wird ein Switch namens Switch.AmazingLib.ThrowOnException auf truefestgelegt, der ein Legacy Verhalten ermöglicht.The following line of code sets a switch named Switch.AmazingLib.ThrowOnException to true, which enables a legacy behavior. Die Bibliothek kann dann überprüfen, ob ein bibliothekconsumer den Wert des Schalters durch Aufrufen TryGetSwitch der-Methode festgelegt hat.The library can then check whether a library consumer has set the value of the switch by calling the TryGetSwitch method.

AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true);
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", True)

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.

Die SetSwitch -Methode wird von einer Anwendung (oder einer Bibliothek) aufgerufen, um den Wert eines Schalters (der immer ein Boolean Wert ist) zu deklarieren, den eine abhängige Bibliothek definiert.The SetSwitch method is called by an application (or a library) to declare the value of a switch (which is always a Boolean value) that a dependent library defines. Der Switch ist immer implizit false, was das neue Verhalten bereitstellt.The switch is always implicitly false, which provides the new behavior. Wenn Sie den Schalter true auf festlegen, wird dieser aktiviert, was das Legacy Verhalten bereitstellt.Setting the switch to true enables it, which provides the legacy behavior. Wenn Sie den Schalter explizit false auf festlegen, wird auch das neue Verhalten bereitstellt.Explicitly setting the switch to false also provides the new behavior. Die abhängige Bibliothek kann dann den Wert des Schalters überprüfen, indem TryGetSwitch Sie die-Methode aufrufen.The dependent library can then check the value of the switch by calling the TryGetSwitch method.

Hinweis

Die Verwendung eines konsistenten Formats für Switchnamen ist von Vorteil, da Sie ein formaler Vertrag sind, der von einer Bibliothek verfügbar gemacht wird.It's beneficial to use a consistent format for switch names, since they are a formal contract exposed by a library. Das folgende Beispiel zeigt zwei offensichtliche Formate.The following are two obvious formats.

  • Switch.namespace.switchnameSwitch.namespace.switchname
  • Switch.library.switchnameSwitch.library.switchname

Für Anwendungen, die auf dem .NET Framework ausgeführt werden, kann zusätzlich zum programmgesteuerten Festlegen des Werts eines Schalters auch festgelegt werden:For applications running on the .NET Framework, in addition to setting the value of a switch programmatically, it can also be set:

  • Durch Hinzufügen des switchnamens und des Werts zum <appcontextwitchoverrides -Element > im <Abschnitt runtime > einer Anwendungs Konfigurationsdatei.By adding the switch name and value to the <AppContextSwitchOverrides> element in the <runtime> section of an application configuration file. Im folgenden Beispiel wird ein Switch mit dem Namen Libraries.FPLibrary.UseExactFloatingPointComparison definiert, dessen FalseWert ist.For example, the following defines a switch named Libraries.FPLibrary.UseExactFloatingPointComparison whose value is False.

    
    <configuration>
       <runtime>
          <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" />
       </runtime>
    </configuration>
    
  • Durch Hinzufügen eines Zeichen folgen Werts, dessen Name der Name des Schalters HKLM\SOFTWARE\Microsoft\.NETFramework\AppContext zum Schlüssel in der Registrierung ist.By adding a string value whose name is the name of the switch to the HKLM\SOFTWARE\Microsoft\.NETFramework\AppContext key in the registry. Der Wert muss die Zeichen folgen Darstellung eines Boolean -Werts sein, der von der Boolean.Parse -Methode analysiert werden kann, d. h., er muss "true", "true", "false" oder "false" sein.Its value must be the string representation of a Boolean that can be parsed by the Boolean.Parse method; that is, it must be "True", "true", "False", or "false".

Wenn switchName bereits vorhanden ist, wird der Wert durch das isEnabled -Argument überschrieben.If switchName already exists, its value is overwritten by the isEnabled argument. Das heißt, der letzte Aufruf der SetSwitch -Methode überschreibt den in der Registrierung definierten Wert, in einer APP-Konfigurationsdatei oder in vorherigen Aufrufen der SetSwitch -Methode.That is, the most recent call to the SetSwitch method overrides the value defined in the registry, in an app configuration file, or by previous calls to the SetSwitch method.

AppContext. *-Witch und .net CoreAppContext.SetSwitch and .NET Core

.Net Core unterstützt programmgesteuerte Aufrufe SetSwitch nur mit der-Methode..NET Core supports programmatic calls with the SetSwitch method only. Folgende Switches werden unterstützt:The following switches are supported:

SchalterSwitch WerteValues BeschreibungDescription
System.Net.Http.SocketsHttpHandler.Http2Support true oder falsetrue or false Gibt an, ob die Unterstützung für das http/2true-Protokoll aktiviert (false) oder deaktiviert () ist.Indicates whether support for the HTTP/2 protocol is enabled (true) or disabled (false). Der Standardwert ist deaktiviert.The default is disabled. Der Switch muss vor der ersten Verwendung von HttpClientfestgelegt werden.The switch must be set before the first use of HttpClient. Verfügbar ab .net Core 3,0 Preview 4.Available starting with .NET Core 3.0 Preview 4.
System.Net.Http.UseSocketsHttpHandler true oder falsetrue or false Bestimmt, ob Netzwerk-APIs auf allgemeiner Ebene HttpClient , System.Net.Http.SocketsHttpHandler wie z. bfalse. (true) oder System.Net.Http.HttpClientHandler () verwenden.Determines whether high-level networking APIs such as HttpClient use System.Net.Http.SocketsHttpHandler (true) or System.Net.Http.HttpClientHandler (false).

Gilt für:

Siehe auch