AppContext.SetSwitch(String, Boolean) Método
Definición
Importante
Parte de la información hace referencia a la versión preliminar del producto, que puede haberse modificado sustancialmente antes de lanzar la versión definitiva. Microsoft no otorga ninguna garantía, explícita o implícita, con respecto a la información proporcionada aquí.
Establece el valor de un conmutador.
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
Nombre del conmutador.
- isEnabled
- Boolean
Valor del conmutador.
Excepciones
switchName
es null
.
switchName
es Empty.
Ejemplos
La siguiente línea de código establece un modificador denominado Switch.AmazingLib.ThrowOnException
en true
, que permite un comportamiento heredado. A continuación, la biblioteca puede comprobar si un consumidor de biblioteca ha establecido el valor del modificador llamando al TryGetSwitch método .
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true);
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true)
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", True)
Comentarios
La AppContext clase permite a los escritores de bibliotecas proporcionar un mecanismo uniforme de exclusión para la nueva funcionalidad para sus usuarios. Establece un contrato flexible entre los componentes para poder comunicar una solicitud de cancelación de la participación. Esta capacidad normalmente es importante cuando se realiza un cambio en la funcionalidad existente. Por el contrario, la nueva funcionalidad participa de forma implícita.
Una SetSwitch aplicación (o una biblioteca) llama al método para declarar el valor de un modificador (que siempre es un Boolean valor) que define una biblioteca dependiente. El modificador siempre es implícitamente false
, que proporciona el nuevo comportamiento. Al establecer el modificador true
en se habilita, lo que proporciona el comportamiento heredado. Establecer explícitamente el modificador false
en también proporciona el nuevo comportamiento. A continuación, la biblioteca dependiente puede comprobar el valor del modificador llamando al TryGetSwitch método .
Nota
Es beneficioso usar un formato coherente para los nombres de modificador, ya que son un contrato formal expuesto por una biblioteca. Las siguientes son dos formatos obvios.
- Modificador.espacio de nombres.nombre del modificador
- Modificador.biblioteca.nombre del modificador
En el caso de las aplicaciones que se ejecutan en .NET Framework, además de establecer el valor de un conmutador mediante programación, también se puede establecer:
Agregando el nombre y el valor del modificador al <elemento AppContextSwitchOverrides> en la <sección runtime> de un archivo de configuración de la aplicación. Por ejemplo, a continuación se define un modificador denominado
Libraries.FPLibrary.UseExactFloatingPointComparison
cuyo valor esFalse
.<configuration> <runtime> <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" /> </runtime> </configuration>
Agregando un valor de cadena cuyo nombre es el nombre del modificador a HKLM\SOFTWARE\Microsoft\. NETFramework\AppContext (y HKLM\SOFTWARE\Wow6432Node\Microsoft\. Subclaves NETFramework\AppContext) en el Registro. Su valor debe ser la representación de cadena de un Boolean objeto que el método puede analizar Boolean.Parse ; es decir, debe ser "True", "true", "False" o "false".
Si existe la entrada del Registro, el isEnabled
argumento sobrescribe su valor cuando SetSwitch se llama a . Es decir, la llamada más reciente al SetSwitch método invalida el valor definido en el Registro, en un archivo de configuración de la aplicación o mediante llamadas anteriores al SetSwitch método .