AppContext.SetSwitch(String, Boolean) Metoda

Definicja

Ustawia wartość przełącznika.

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)

Parametry

switchName
String

Nazwa przełącznika.

isEnabled
Boolean

Wartość przełącznika.

Wyjątki

switchName to null.

switchName to Empty.

Przykłady

Poniższy wiersz kodu ustawia przełącznik o nazwie Switch.AmazingLib.ThrowOnException na true, co umożliwia zachowanie starszej wersji. Biblioteka może następnie sprawdzić, czy użytkownik biblioteki ustawił wartość przełącznika, wywołując metodę TryGetSwitch .

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

Uwagi

Klasa AppContext umożliwia autorom bibliotek zapewnienie jednolitego mechanizmu rezygnacji dla nowych funkcji dla użytkowników. Ustanawia luźno powiązany kontrakt między składnikami w celu przekazania wniosku o rezygnację. Ta funkcja jest zwykle ważna w przypadku wprowadzenia zmiany w istniejących funkcjach. Z drugiej strony istnieje już niejawna zgoda na nowe funkcje.

Metoda SetSwitch jest wywoływana przez aplikację (lub bibliotekę), aby zadeklarować wartość przełącznika (który jest zawsze wartością Boolean ), którą definiuje biblioteka zależna. Przełącznik jest zawsze niejawnie false, co zapewnia nowe zachowanie. Ustawienie przełącznika w celu true włączenia go, co zapewnia starsze zachowanie. Jawne ustawienie przełącznika w celu false zapewnia również nowe zachowanie. Biblioteka zależna może następnie sprawdzić wartość przełącznika, wywołując metodę TryGetSwitch .

Uwaga

Korzystne jest użycie spójnego formatu dla nazw przełączników, ponieważ są one formalnym kontraktem udostępnianym przez bibliotekę. Poniżej przedstawiono dwa oczywiste formaty.

  • Przełącznik. przestrzeń nazw. switchname
  • Przełącznik. biblioteka. switchname

W przypadku aplikacji działających na .NET Framework oprócz programowego ustawiania wartości przełącznika można również ustawić:

  • Dodając nazwę i wartość przełącznika do <elementu AppContextSwitchOverrides> w <sekcji środowiska uruchomieniowego> pliku konfiguracji aplikacji. Na przykład poniżej zdefiniowano przełącznik o nazwie Libraries.FPLibrary.UseExactFloatingPointComparison , którego wartość to False.

    <configuration>
       <runtime>
          <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" />
       </runtime>
    </configuration>
    
  • Dodając wartość ciągu, której nazwa jest nazwą przełącznika do HKLM\SOFTWARE\Microsoft\. NETFramework\AppContext (i HKLM\SOFTWARE\Wow6432Node\Microsoft\. Podklucze NETFramework\AppContext) w rejestrze. Jego wartość musi być reprezentacją Boolean ciągu, który może być analizowany przez metodę Boolean.Parse . Oznacza to, że musi mieć wartość "True", "true", "False" lub "false".

Jeśli wpis rejestru istnieje, jego wartość jest zastępowana przez isEnabled argument, gdy SetSwitch jest wywoływany. Oznacza to, że najnowsze wywołanie SetSwitch metody zastępuje wartość zdefiniowaną w rejestrze, w pliku konfiguracji aplikacji lub przez poprzednie wywołania SetSwitch metody .

Dotyczy

Zobacz też