AppContext.SetSwitch(String, Boolean) Metod

Definition

Anger värdet för en växel.

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)

Parametrar

switchName
String

Namnet på växeln.

isEnabled
Boolean

Värdet för växeln.

Undantag

switchName är null.

switchName är Empty.

Exempel

Följande kodrad anger en växel med namnet Switch.AmazingLib.ThrowOnException till true, som möjliggör ett äldre beteende. Biblioteket kan sedan kontrollera om en bibliotekskonsument har angett värdet för växeln genom att anropa TryGetSwitch metoden.

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

Kommentarer

Klassen AppContext gör det möjligt för biblioteksförfattare att tillhandahålla en enhetlig opt-out-mekanism för nya funktioner för sina användare. Det upprättar ett löst kopplat kontrakt mellan komponenter för att kommunicera en begäran om avbeställning. Den här funktionen är vanligtvis viktig när en ändring görs i befintliga funktioner. Omvänt finns det redan en implicit opt-in för nya funktioner.

Metoden SetSwitch anropas av ett program (eller ett bibliotek) för att deklarera värdet för en växel (som alltid är ett Boolean värde) som ett beroende bibliotek definierar. Växeln är alltid implicit , vilket ger det nya beteendet false. Om du ställer in växeln på true aktiveras den, vilket ger det äldre beteendet. Om du uttryckligen anger växeln till false får du också det nya beteendet. Det beroende biblioteket kan sedan kontrollera värdet för växeln genom att anropa TryGetSwitch metoden.

Note

Det är fördelaktigt att använda ett konsekvent format för växelnamn, eftersom de är ett formellt kontrakt som exponeras av ett bibliotek. Följande är två uppenbara format.

  • Switch.namnområde.switchnamn
  • Växla.bibliotek.switchname

För program som körs på .NET Framework, förutom att ange värdet för en växel programmatiskt, kan den också anges:

  • Genom att lägga till växelnamnet och värdet i elementet <AppContextSwitchOverrides> i körningsavsnittet<> i en programkonfigurationsfil. Följande definierar till exempel en växel med namnet Libraries.FPLibrary.UseExactFloatingPointComparison vars värde är False.

    <configuration>
       <runtime>
          <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" />
       </runtime>
    </configuration>
    
  • Genom att lägga till ett strängvärde vars namn är namnet på växeln till HKLM\SOFTWARE\Microsoft\. NETFramework\AppContext (och HKLM\SOFTWARE\Wow6432Node\Microsoft\. NETFramework\AppContext) undernycklar i registret. Dess värde måste vara strängrepresentationen av en Boolean som kan parsas med Boolean.Parse metoden. Det måste vara "True", "true", "False" eller "false".

Om registerposten finns skrivs dess värde över av isEnabled argumentet när SetSwitch anropas. Det vill säga att det senaste anropet SetSwitch till metoden åsidosätter värdet som definierats i registret, i en appkonfigurationsfil eller av tidigare anrop till SetSwitch metoden.

Gäller för

Se även