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 modificador.
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 modificador.
- isEnabled
- Boolean
Valor del modificador.
Excepciones
switchName es null.
switchName es Empty.
Ejemplos
La siguiente línea de código establece un modificador denominado Switch.AmazingLib.ThrowOnExceptiontrue, que permite un comportamiento heredado. Después, 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 de acoplamiento flexible entre componentes para comunicar una solicitud de exclusión. Esta funcionalidad suele ser importante cuando se realiza un cambio en la funcionalidad existente. Por el contrario, ya hay un consentimiento implícito para la nueva funcionalidad.
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. Configurar el interruptor true hace que se habilite, lo que proporciona el comportamiento heredado. Al establecer explícitamente el conmutador en false, también se proporciona el nuevo comportamiento. A continuación, la biblioteca dependiente puede comprobar el valor del modificador llamando al TryGetSwitch método .
Note
Es beneficioso usar un formato coherente para los nombres de modificador, ya que son un contrato formal expuesto por una biblioteca. A continuación se muestran dos formatos obvios.
- Modificador.espacio de nombres.nombre del modificador
- Modificador.biblioteca.nombre del modificador
Para 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:
Al agregar 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.UseExactFloatingPointComparisoncuyo 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 la 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 se puede analizar mediante el Boolean.Parse método ; 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 .