AppContext.SetSwitch(String, Boolean) AppContext.SetSwitch(String, Boolean) AppContext.SetSwitch(String, Boolean) AppContext.SetSwitch(String, Boolean) Method

Definicja

Ustawia wartość przełącznika.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)

Parametry

switchName
String String String String

Nazwa przełącznika.The name of the switch.

isEnabled
Boolean Boolean Boolean Boolean

Wartość przełącznika.The value of the switch.

Wyjątki

Przykłady

Poniższy wiersz kodu ustawia przełącznik o nazwie Switch.AmazingLib.ThrowOnException do true, który umożliwia starsze zachowanie.The following line of code sets a switch named Switch.AmazingLib.ThrowOnException to true, which enables a legacy behavior. Następnie biblioteka może sprawdzić, czy konsument biblioteki ustawił wartość przełącznika przez wywołanie TryGetSwitch metody.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)

Uwagi

AppContext Klasa pozwala autorom biblioteki zapewnić jednolity mechanizm rezygnacji dla nowych funkcji dla swoich użytkowników.The AppContext class enables library writers to provide a uniform opt-out mechanism for new functionality for their users. Tworzy luźno rozłączoną umowę między składnikami w celu przekazywania żądania rezygnacji.It establishes a loosely-coupled contract between components in order to communicate an opt-out request. Ta funkcja jest zwykle ważna w przypadku zmiany istniejącej funkcji.This capability is typically important when a change is made to existing functionality. Z drugiej strony istnieje już niejawny wybór dla nowych funkcji.Conversely, there is already an implicit opt-in for new functionality.

Metoda jest wywoływana przez aplikację (lub bibliotekę) do deklarowania wartości przełącznika ( Boolean zawsze jest to wartość), który definiuje Biblioteka zależna. SetSwitchThe 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. Przełącznik jest zawsze niejawnie false, który zapewnia nowe zachowanie.The switch is always implicitly false, which provides the new behavior. Ustawienie przełącznika w taki true sposób, aby włączyć go, co zapewnia starsze zachowanie.Setting the switch to true enables it, which provides the legacy behavior. Jawne ustawienie przełącznika false zapewnia również nowe zachowanie.Explicitly setting the switch to false also provides the new behavior. Zależna biblioteka może następnie sprawdzić wartość przełącznika, wywołując TryGetSwitch metodę.The dependent library can then check the value of the switch by calling the TryGetSwitch method.

Uwaga

Korzystne jest użycie spójnego formatu nazw przełączników, ponieważ są one formalnym kontraktem udostępnianym przez bibliotekę.It's beneficial to use a consistent format for switch names, since they are a formal contract exposed by a library. Poniżej przedstawiono dwa oczywiste formaty.The following are two obvious formats.

  • Przełącznik. przestrzeń nazw. przełączniknameSwitch.namespace.switchname
  • Przełącznik. Biblioteka. przełączniknameSwitch.library.switchname

W przypadku aplikacji uruchamianych na .NET Framework, oprócz ustawiania wartości przełącznika programowo, można również ustawić:For applications running on the .NET Framework, in addition to setting the value of a switch programmatically, it can also be set:

  • Przez dodanie nazwy przełącznika i wartości do <elementu AppContextSwitchOverrides > w sekcji <> środowiska uruchomieniowego w pliku konfiguracyjnym aplikacji.By adding the switch name and value to the <AppContextSwitchOverrides> element in the <runtime> section of an application configuration file. Na przykład, poniżej definiuje przełącznik o nazwie Libraries.FPLibrary.UseExactFloatingPointComparison , którego wartość to. FalseFor example, the following defines a switch named Libraries.FPLibrary.UseExactFloatingPointComparison whose value is False.

    
    <configuration>
       <runtime>
          <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" />
       </runtime>
    </configuration>
    
  • Przez dodanie wartości ciągu, której nazwa jest nazwą przełącznika do HKLM\SOFTWARE\Microsoft\.NETFramework\AppContext klucza w rejestrze.By adding a string value whose name is the name of the switch to the HKLM\SOFTWARE\Microsoft\.NETFramework\AppContext key in the registry. Wartość musi być reprezentacją Boolean ciągu, który może być analizowany Boolean.Parse przez metodę, czyli musi mieć wartość "true", "true", "false" lub "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".

Jeśli switchName już istnieje, jego wartość jest zastępowana isEnabled przez argument.If switchName already exists, its value is overwritten by the isEnabled argument. Oznacza to, że ostatnie wywołanie SetSwitch metody przesłania wartość zdefiniowaną w rejestrze, w pliku konfiguracyjnym aplikacji lub przez poprzednie wywołania SetSwitch metody.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 i .NET CoreAppContext.SetSwitch and .NET Core

Program .NET Core obsługuje wywołania programistyczne SetSwitch tylko z tą metodą..NET Core supports programmatic calls with the SetSwitch method only. Obsługiwane są następujące przełączniki:The following switches are supported:

PrzełącznikSwitch WartościValues OpisDescription
System.Net.Http.SocketsHttpHandler.Http2Support true lub falsetrue or false Wskazuje, czy obsługa protokołu HTTP/2 jest włączona (true) czy wyłączona (false).Indicates whether support for the HTTP/2 protocol is enabled (true) or disabled (false). Wartość domyślna jest wyłączona.The default is disabled. Przełącznik musi być ustawiony przed pierwszym użyciem HttpClient.The switch must be set before the first use of HttpClient. Dostępne począwszy od programu .NET Core 3,0 Preview 4.Available starting with .NET Core 3.0 Preview 4.
System.Net.Http.UseSocketsHttpHandler true lub falsetrue or false Określa, HttpClient czy są System.Net.Http.SocketsHttpHandler System.Net.Http.HttpClientHandler falseużywane interfejsy API sieci wysokiego poziomu, takie jak ()czy().trueDetermines whether high-level networking APIs such as HttpClient use System.Net.Http.SocketsHttpHandler (true) or System.Net.Http.HttpClientHandler (false).

Dotyczy

Zobacz też