AppContext.SetSwitch(String, Boolean) Método

Definición

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

Se aplica a

Consulte también