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 da opção.

isEnabled
Boolean

O valor da opção.

Exceções

switchName é null.

switchName é Empty.

Exemplos

A linha de código a seguir define um comutador nomeado Switch.AmazingLib.ThrowOnException para true, o que permite um comportamento herdado. Em seguida, a biblioteca pode verificar 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 classe AppContext permite que os gravadores de biblioteca forneçam um mecanismo uniforme de exclusão para novas funcionalidades para seus usuários. Ela estabelece um contrato flexível entre componentes a fim de comunicar uma solicitação de recusa. Essa funcionalidade normalmente é importante quando uma alteração é feita na funcionalidade existente. Por outro lado, já há uma aceitação implícita para novas funcionalidades.

O SetSwitch método é chamado por um aplicativo (ou uma biblioteca) para declarar o valor de um comutador (que é sempre um Boolean valor) definido por uma biblioteca dependente. A opção é sempre implicitamente false, o que fornece o novo comportamento. Ao configurar o interruptor para true, ele será habilitado, o que fornece o comportamento herdado. Definir explicitamente o interruptor para false também proporciona o novo comportamento. A biblioteca dependente pode verificar o valor da opção chamando o TryGetSwitch método.

Note

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

  • Switch.namespace.switchname
  • Biblioteca de.comutadores.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:

  • 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 um comutador chamado 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 o 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