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 Switch.AmazingLib.ThrowOnException chamada trueto, que habilita um comportamento herdado.The following line of code sets a switch named Switch.AmazingLib.ThrowOnException to true, which enables a legacy behavior. Em seguida, a biblioteca pode verificar se um consumidor de biblioteca definiu o valor da opção chamando TryGetSwitch o 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

A AppContext classe permite que os gravadores de biblioteca forneçam um mecanismo de aceitação uniforme para novas funcionalidades 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 uma biblioteca dependente define.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. Definir a opção para true habilitá-la, que fornece o comportamento herdado.Setting the switch to true enables it, which provides the legacy behavior. Definir explicitamente a opção como false também fornece o novo comportamento.Explicitly setting the switch to false also provides the new behavior. A biblioteca dependente 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

É benéfico usar um formato consistente para nomes de comutador, pois 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, ele também pode ser definido: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 ao elemento AppContextSwitchOverrides > na seção > de tempo de execução de um arquivo de configuração de aplicativo.By adding the switch name and value to the <AppContextSwitchOverrides> element in the <runtime> section of an application configuration file. Por exemplo, o seguinte define uma opção chamada 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 HKLM\SOFTWARE\Microsoft\.NETFramework\AppContext para a 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 Boolean caracteres de um que possa ser analisada Boolean.Parse pelo método; ou seja, 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 será substituído isEnabled pelo 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 de aplicativo ou por chamadas anteriores SetSwitch ao 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

O .NET Core oferece suporte a chamadas SetSwitch programáticas somente com o 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á habilitadotrue() ou desabilitado (false).Indicates whether support for the HTTP/2 protocol is enabled (true) or disabled (false). O padrão é desabilitado.The default is disabled. A opção deve ser definida antes do primeiro uso de HttpClient.The switch must be set before the first use of HttpClient. Disponível a partir do .NET Core 3,0 Preview 4.Available starting with .NET Core 3.0 Preview 4.
System.Net.Http.UseSocketsHttpHandler true ou falsetrue or false Determina se APIs de rede de alto nível, HttpClient como System.Net.Http.SocketsHttpHandler usetrue() System.Net.Http.HttpClientHandler oufalse().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