AppContext.SetSwitch(String, Boolean) Método

Definición

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 es False.

    <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 .

Se aplica a

Consulte también