AppContext.SetSwitch(String, Boolean) Methode

Definition

Legt den Wert eines Schalters fest.

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

Der Name des Schalters.

isEnabled
Boolean

Der Wert des Schalters.

Ausnahmen

switchName ist null.

switchName ist Empty.

Beispiele

Die folgende Codezeile legt einen Switch namens Switch.AmazingLib.ThrowOnException " true, der ein Legacyverhalten ermöglicht. Die Bibliothek kann dann überprüfen, ob ein Bibliotheksanwender den Wert der Option durch Aufrufen der TryGetSwitch Methode festgelegt hat.

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

Hinweise

Mit der AppContext Klasse können Bibliotheksautoren einen einheitlichen Opt-Out-Mechanismus für neue Funktionen für ihre Benutzer bereitstellen. Sie richtet einen lose gekoppelten Vertrag zwischen Komponenten ein, um eine Opt-Out-Anforderung zu kommunizieren. Diese Funktion ist in der Regel wichtig, wenn eine Änderung an vorhandenen Funktionen vorgenommen wird. Umgekehrt gibt es bereits einen impliziten Opt-In-Mechanismus für neue Funktionalität.

Die SetSwitch Methode wird von einer Anwendung (oder Bibliothek) aufgerufen, um den Wert eines Schalters (der immer ein Boolean Wert ist) zu deklarieren, den eine abhängige Bibliothek definiert. Der Schalter ist immer implizit false, was das neue Verhalten bereitstellt. Wenn Sie den Schalter auf true festlegen, wird er aktiviert, was das veraltete Verhalten zur Folge hat. Das explizite Festlegen des Schalters auf false führt ebenfalls zu dem neuen Verhalten. Die abhängige Bibliothek kann dann den Wert der Option überprüfen, indem sie die TryGetSwitch Methode aufruft.

Note

Es ist vorteilhaft, ein einheitliches Format für Switchnamen zu verwenden, da sie ein formaler Vertrag sind, der von einer Bibliothek verfügbar gemacht wird. Es folgen zwei offensichtliche Formate.

  • Wechseln. namespace. switchname
  • Wechseln. bibliothek. switchname

Für Anwendungen, die unter .NET Framework ausgeführt werden, kann sie zusätzlich zum programmgesteuerten Festlegen des Werts eines Switches festgelegt werden:

  • Durch Hinzufügen des Switchnamens und -Werts <zum AppContextSwitchOverrides-Element> im <Laufzeitabschnitt> einer Anwendungskonfigurationsdatei. Im Folgenden wird beispielsweise ein Schalter definiert, dessen Wert Libraries.FPLibrary.UseExactFloatingPointComparisonlautetFalse.

    <configuration>
       <runtime>
          <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" />
       </runtime>
    </configuration>
    
  • Durch Hinzufügen eines Zeichenfolgenwerts, dessen Name der Name der Option zum HKLM\SOFTWARE\Microsoft\ist. NETFramework\AppContext (und HKLM\SOFTWARE\Wow6432Node\Microsoft\. NETFramework\AppContext) Unterschlüssel in der Registrierung. Der Wert muss die Zeichenfolgendarstellung eines Boolean Werts sein, der von der Boolean.Parse Methode analysiert werden kann. Das heißt, er muss "True", "true", "False" oder "false" sein.

Wenn der Registrierungseintrag vorhanden ist, wird der Wert durch das isEnabled Argument überschrieben, wenn SetSwitch er aufgerufen wird. Das heißt, der letzte Aufruf der SetSwitch Methode setzt den in der Registrierung definierten Wert, in einer App-Konfigurationsdatei oder durch vorherige Aufrufe der SetSwitch Methode außer Kraft.

Gilt für:

Weitere Informationen