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

Definição

Define o valor de uma opção.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)

Parâmetros

switchName
String String String String

O nome de opção.The name of the switch.

isEnabled
Boolean Boolean Boolean Boolean

O valor da opção.The value of the switch.

Exceções

Exemplos

A linha de código a seguir define uma opção chamada Switch.AmazingLib.ThrowOnException para true, que permite um comportamento herdado.The following line of code sets a switch named Switch.AmazingLib.ThrowOnException to true, which enables a legacy behavior. A biblioteca, em seguida, pode verificar se um consumidor de biblioteca tiver definido o valor da opção chamando o TryGetSwitch método.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)

Comentários

O AppContext classe permite aos escritores de biblioteca fornecer um mecanismo de recusa uniforme para a nova funcionalidade para seus usuários.The AppContext class enables library writers to provide a uniform opt-out mechanism for new functionality for their users. Ela estabelece um contrato flexível entre componentes a fim de comunicar uma solicitação de recusa.It establishes a loosely-coupled contract between components in order to communicate an opt-out request. Normalmente, essa funcionalidade é importante quando uma alteração é feita na funcionalidade existente.This capability is typically important when a change is made to existing functionality. Por outro lado, já existe uma aceitação implícita da nova funcionalidade.Conversely, there is already an implicit opt-in for new functionality.

O SetSwitch método é chamado por um aplicativo (ou uma biblioteca) para declarar o valor de uma opção (que é sempre um Boolean valor) que define uma biblioteca dependente.The 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. A opção é sempre implicitamente false, que fornece o novo comportamento.The switch is always implicitly false, which provides the new behavior. Definição da opção true permite a ele, que fornece o comportamento herdado.Setting the switch to true enables it, which provides the legacy behavior. Definir explicitamente a opção false também fornece o novo comportamento.Explicitly setting the switch to false also provides the new behavior. A biblioteca dependente, em seguida, pode verificar o valor da opção chamando o TryGetSwitch método.The dependent library can then check the value of the switch by calling the TryGetSwitch method.

Observação

É útil usar um formato consistente para nomes de comutador, já que eles são um contrato formal exposto por uma biblioteca.It's beneficial to use a consistent format for switch names, since they are a formal contract exposed by a library. Veja a seguir dois formatos óbvios.The following are two obvious formats.

  • Opção.namespace.nomedaopçãoSwitch.namespace.switchname
  • Opção.biblioteca.nomedaopçãoSwitch.library.switchname

Para aplicativos em execução no .NET Framework, além de definir o valor de um comutador programaticamente, também pode ser configurada:For applications running on the .NET Framework, in addition to setting the value of a switch programmatically, it can also be set:

  • Adicionando o nome do comutador e o valor para o <AppContextSwitchOverrides > elemento no <tempo de execução > seção de um arquivo de configuração do aplicativo.By adding the switch name and value to the <AppContextSwitchOverrides> element in the <runtime> section of an application configuration file. Por exemplo, a seguir define um comutador chamado Libraries.FPLibrary.UseExactFloatingPointComparison cujo valor é False.For example, the following defines a switch named Libraries.FPLibrary.UseExactFloatingPointComparison whose value is False.

    
    <configuration>
       <runtime>
          <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" />
       </runtime>
    </configuration>
    
  • Adicionando um valor de cadeia de caracteres cujo nome é o nome do comutador para o HKLM\SOFTWARE\Microsoft\.NETFramework\AppContext chave no registro.By adding a string value whose name is the name of the switch to the HKLM\SOFTWARE\Microsoft\.NETFramework\AppContext key in the registry. Seu valor deve ser a representação de cadeia de caracteres de um Boolean que pode ser analisado pelo Boolean.Parse método; ou seja, ele deve ser "True", "true", "False" ou "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".

Se switchName já existir, seu valor é substituído pelo isEnabled argumento.If switchName already exists, its value is overwritten by the isEnabled argument. Ou seja, a chamada mais recente para o SetSwitch método substitui o valor definido no registro, em um arquivo de configuração do aplicativo ou por chamadas anteriores para o SetSwitch método.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 e .NET CoreAppContext.SetSwitch and .NET Core

.NET core dá suporte a chamadas de programação com o SetSwitch somente no método..NET Core supports programmatic calls with the SetSwitch method only. Há suporte para as seguintes opções:The following switches are supported:

AlternarSwitch ValoresValues DescriçãoDescription
System.Net.Http.SocketsHttpHandler.Http2Support true ou falsetrue or false Indica se o suporte para o protocolo HTTP/2 está habilitado (true) ou desabilitado (false).Indicates whether support for the HTTP/2 protocol is enabled (true) or disabled (false). O padrão é desativado.The default is disabled. A opção deve ser definida antes do primeiro uso do HttpClient.The switch must be set before the first use of HttpClient. Disponível a partir da visualização 4 do .NET Core 3.0.Available starting with .NET Core 3.0 Preview 4.
System.Net.Http.UseSocketsHttpHandler true ou falsetrue or false Determina se o alto nível, como as APIs de rede HttpClient usar System.Net.Http.SocketsHttpHandler (true) ou System.Net.Http.HttpClientHandler (false).Determines whether high-level networking APIs such as HttpClient use System.Net.Http.SocketsHttpHandler (true) or System.Net.Http.HttpClientHandler (false).

Aplica-se a

Veja também