AppContext.SetSwitch(String, Boolean) Método
Definição
Importante
Algumas informações se referem a produtos de pré-lançamento que podem ser substancialmente modificados antes do lançamento. A Microsoft não oferece garantias, expressas ou implícitas, das informações aqui fornecidas.
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 .