AppContext.SetSwitch(String, Boolean) Método
Definição
Importante
Algumas informações dizem respeito a um produto pré-lançado que pode ser substancialmente modificado antes de ser lançado. A Microsoft não faz garantias, de forma expressa ou implícita, em relação à informação aqui apresentada.
Define o valor de um interruptor.
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 do switch.
- isEnabled
- Boolean
O valor do interruptor.
Exceções
switchName é null.
switchName é Empty.
Exemplos
A linha de código seguinte define um switch nomeado Switch.AmazingLib.ThrowOnException para true, que permite um comportamento legado. A biblioteca pode então verificar se um consumidor da biblioteca definiu o valor do switch chamando o TryGetSwitch método.
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true);
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true)
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", True)
Observações
A classe AppContext permite que os escritores de bibliotecas forneçam um mecanismo de exclusão uniforme para novas funcionalidades para seus usuários. Estabelece um contrato de acoplamento frouxo entre componentes, a fim de comunicar um pedido de autoexclusão. Esse recurso geralmente é importante quando uma alteração é feita na funcionalidade existente. Por outro lado, já existe um opt-in implícito para novas funcionalidades.
O SetSwitch método é chamado por uma aplicação (ou uma biblioteca) para declarar o valor de um switch (que é sempre um Boolean valor) que uma biblioteca dependente define. O interruptor é sempre implicitamente false, o que fornece o novo comportamento. Definir o switch como true o habilita, o que fornece o comportamento herdado. Definir explicitamente o interruptor como false também fornece o novo comportamento. A biblioteca dependente pode então verificar o valor do switch chamando o TryGetSwitch método.
Note
É benéfico usar um formato consistente para os nomes dos switches, já que são um contrato formal exposto por uma biblioteca. Seguem-se dois formatos óbvios.
- Switch.namespace.switchname
- Switch.biblioteca.nome do interruptor
Para aplicações a correr no .NET Framework, além de definir o valor de um switch programaticamente, também pode ser definido:
Ao adicionar o nome e valor do switch ao <elemento AppContextSwitchOverrides> na <secção de tempo> de execução de um ficheiro de configuração de aplicação. Por exemplo, o seguinte define um interruptor nomeado
Libraries.FPLibrary.UseExactFloatingPointComparisoncujo valor éFalse.<configuration> <runtime> <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" /> </runtime> </configuration>Adicionando um valor de cadeia cujo nome é o nome do switch ao HKLM\SOFTWARE\Microsoft\. NETFramework\AppContext (e HKLM\SOFTWARE\Wow6432Node\Microsoft\. NETFramework\AppContext) no registo. O seu valor deve ser a representação da cadeia de a Boolean que pode ser analisada pelo Boolean.Parse método; ou seja, deve ser "Verdadeiro", "verdadeiro", "Falso" ou "falso".
Se a entrada do registo existir, o seu valor é sobrescrito pelo isEnabled argumento quando SetSwitch é chamada. Ou seja, a chamada mais recente ao SetSwitch método sobrepõe-se ao valor definido no registo, num ficheiro de configuração da aplicação ou por chamadas anteriores ao SetSwitch método.