AppContext.SetSwitch(String, Boolean) Método

Definição

Define o valor de uma opção.

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

O nome de opção.

isEnabled
Boolean

O valor da opção.

Exceções

switchName é null.

switchName é Empty.

Exemplos

A linha de código a seguir define uma opção chamada Switch.AmazingLib.ThrowOnException para true, que habilita um comportamento herdado. Em seguida, a biblioteca pode marcar se um consumidor de biblioteca definiu o valor da opção chamando o TryGetSwitch método .

AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true);
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 recusa uniforme para novas funcionalidades para seus usuários. Ela estabelece um contrato flexível entre componentes a fim de comunicar uma solicitação de recusa. Normalmente, essa funcionalidade é importante quando uma alteração é feita na funcionalidade existente. Por outro lado, já existe uma aceitação implícita da nova funcionalidade.

O SetSwitch método é chamado por um aplicativo (ou uma biblioteca) para declarar o valor de uma opção (que é sempre um Boolean valor) definido por uma biblioteca dependente. A opção é sempre implicitamente false, que fornece o novo comportamento. A configuração da opção como true a habilita, que fornece o comportamento herdado. Definir explicitamente a opção como false também fornece o novo comportamento. A biblioteca dependente pode marcar o valor da opção chamando o TryGetSwitch método .

Observação

É benéfico usar um formato consistente para nomes de comutador, pois eles são um contrato formal exposto por uma biblioteca. Veja a seguir dois formatos óbvios.

  • Opção.namespace.nomedaopção
  • Opção.biblioteca.nomedaopção

Para aplicativos em execução no .NET Framework, além de definir o valor de um comutador programaticamente, ele também pode ser definido:

  • Adicionando o nome e o valor da opção ao <elemento AppContextSwitchOverrides> na <seção de runtime> de um arquivo de configuração de aplicativo. Por exemplo, o seguinte define uma opção chamada Libraries.FPLibrary.UseExactFloatingPointComparison cujo valor é False.

    <configuration>
       <runtime>
          <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" />
       </runtime>
    </configuration>
    
  • Adicionando um valor de cadeia de caracteres cujo nome é o nome da opção para HKLM\SOFTWARE\Microsoft\. NETFramework\AppContext (e HKLM\SOFTWARE\Wow6432Node\Microsoft\. Subchaves NETFramework\AppContext) no Registro. 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".

Se a entrada do Registro existir, seu valor será substituído pelo isEnabled argumento quando SetSwitch for chamado. 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 ao SetSwitch método .

Aplica-se a

Confira também