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

Die folgende Codezeile legt einen Switch mit dem Namen Switch.AmazingLib.ThrowOnException zu true, wodurch ein legacy-Verhalten.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 Sie, ob ein Consumer Bibliothek den Wert des Schalters durch den Aufruf festgelegt hat die TryGetSwitch Methode.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

Die AppContext Klasse ermöglicht Autoren von Bibliotheken, die ihren Benutzern einen einheitlichen abwahlmechanismus für neue Funktionalitäten bereitzustellen.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 aufgerufen, indem Sie eine Anwendung (oder eine Bibliothek), um den Wert einer Option deklarieren (Dies ist immer eine Boolean Wert), die von einer 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. Die Option ist immer implizit false, die das neue Verhalten bietet.The switch is always implicitly false, which provides the new behavior. Festlegen der Option auf true ermöglicht, die das Legacyverhalten bereitstellt.Setting the switch to true enables it, which provides the legacy behavior. Explizites Festlegen der Option zum false bietet auch das neue Verhalten.Explicitly setting the switch to false also provides the new behavior. Abhängige Bibliothek kann dann überprüfen Sie den Wert des Schalters durch Aufrufen der TryGetSwitch Methode.The dependent library can then check the value of the switch by calling the TryGetSwitch method.

Hinweis

Jetzt ist es vorteilhaft, die ein konsistentes Format für die Switch-Namen verwenden, da sie eine formellen Vertrag, der von einer Bibliothek verfügbar gemacht werden können.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 auf .NET Framework, zusätzlich zu den Wert eines Schalters programmgesteuert festlegen können sie 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 der Switch-Name und Wert, der die <AppContextSwitchOverrides > Element in der <Runtime > Abschnitt der Konfigurationsdatei einer Anwendung.By adding the switch name and value to the <AppContextSwitchOverrides> element in the <runtime> section of an application configuration file. Folgendes definiert z. B. einen Switch namens Libraries.FPLibrary.UseExactFloatingPointComparison , dessen Wert False.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 das Hinzufügen eines String-Wert, dessen Name der Name des Schalters ist, der HKLM\SOFTWARE\Microsoft\.NETFramework\AppContext -Schlüssel in der Registrierung.By adding a string value whose name is the name of the switch to the HKLM\SOFTWARE\Microsoft\.NETFramework\AppContext key in the registry. Muss sein Wert die Zeichenfolgendarstellung einer Boolean , die analysiert werden kann, indem die Boolean.Parse -Methode, d. h., es muss "True", "true", "False" oder "false".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 von überschrieben, die isEnabled Argument.If switchName already exists, its value is overwritten by the isEnabled argument. D. h., der den letzten Aufruf der SetSwitch Methode überschreibt den Wert, der definiert, in der Registrierung in einer app-Konfigurationsdatei oder durch frühere Aufrufe 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.SetSwitch und .NET CoreAppContext.SetSwitch and .NET Core

.NET Core unterstützt die programmgesteuerte Aufrufe mit dem SetSwitch nur Methode..NET Core supports programmatic calls with the SetSwitch method only. Die folgenden Schalter werden unterstützt:The following switches are supported:

SchalterSwitch WerteValues BeschreibungDescription
System.Net.Http.SocketsHttpHandler.Http2Support true oder falsetrue or false Gibt an, ob auf die Unterstützung für das HTTP/2-Protokoll aktiviert ist (true) oder deaktiviert (false).Indicates whether support for the HTTP/2 protocol is enabled (true) or disabled (false). Der Standardwert ist deaktiviert.The default is disabled. Der Schalter muss festgelegt werden, vor der ersten Verwendung von HttpClient.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 allgemeine Netzwerk-APIs wie z. B. HttpClient verwenden System.Net.Http.SocketsHttpHandler (true) oder System.Net.Http.HttpClientHandler (false).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