AppContext.SetSwitch(String, Boolean) Methode
Definition
Wichtig
Einige Informationen beziehen sich auf Vorabversionen, die vor dem Release ggf. grundlegend überarbeitet werden. Microsoft übernimmt hinsichtlich der hier bereitgestellten Informationen keine Gewährleistungen, seien sie ausdrücklich oder konkludent.
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.