AppContext.SetSwitch(String, Boolean) Metodo
Definizione
Importante
Alcune informazioni sono relative alla release non definitiva del prodotto, che potrebbe subire modifiche significative prima della release definitiva. Microsoft non riconosce alcuna garanzia, espressa o implicita, in merito alle informazioni qui fornite.
Imposta il valore di un'opzione.
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)
Parametri
- switchName
- String
Nome dell'opzione.
- isEnabled
- Boolean
Valore dell'opzione.
Eccezioni
switchName è null.
switchName è Empty.
Esempio
La riga di codice seguente imposta un'opzione denominata su Switch.AmazingLib.ThrowOnExceptiontrue, che consente un comportamento legacy. La libreria può quindi verificare se un consumer di libreria ha impostato il valore dell'opzione chiamando il TryGetSwitch metodo .
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true);
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true)
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", True)
Commenti
La classe AppContext consente agli scrittori di librerie di fornire un meccanismo uniforme di esclusione per le nuove funzionalità per i loro utenti. Stabilisce un contratto ad accoppiamento debole tra i componenti per comunicare una richiesta di esclusione. Questa funzionalità è in genere importante quando viene apportata una modifica alla funzionalità esistente. Al contrario, esiste già un consenso esplicito implicito per le nuove funzionalità.
Il SetSwitch metodo viene chiamato da un'applicazione (o da una libreria) per dichiarare il valore di un'opzione (che è sempre un Boolean valore) definita da una libreria dipendente. L'opzione è sempre implicitamente false, che fornisce il nuovo comportamento. L'impostazione dell'opzione su true lo abilita, che attiva il comportamento legacy. L'impostazione esplicita dell'interruttore su false fornisce anche il nuovo comportamento. La libreria dipendente può quindi controllare il valore dell'opzione chiamando il TryGetSwitch metodo .
Note
È utile usare un formato coerente per i nomi dei cambi, poiché sono un contratto formale esposto da una libreria. Di seguito sono riportati due formati ovvi.
- Switch.spazio dei nomi.switchname
- Switch.libreria.switchname
Per le applicazioni in esecuzione in .NET Framework, oltre a impostare il valore di un commutatore a livello di codice, è anche possibile impostarlo:
Aggiungendo il nome e il valore dell'opzione all'elemento <AppContextSwitchOverrides> nella <sezione runtime> di un file di configurazione dell'applicazione. Ad esempio, il codice seguente definisce un'opzione denominata il
Libraries.FPLibrary.UseExactFloatingPointComparisoncui valore èFalse.<configuration> <runtime> <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" /> </runtime> </configuration>Aggiungendo un valore stringa il cui nome è il nome dell'opzione al HKLM\SOFTWARE\Microsoft\. NETFramework\AppContext (e HKLM\SOFTWARE\Wow6432Node\Microsoft\. Sottochiavi NETFramework\AppContext) nel Registro di sistema. Il valore deve essere la rappresentazione di stringa di un oggetto Boolean che può essere analizzato dal Boolean.Parse metodo, ovvero deve essere "True", "true", "False" o "false".
Se la voce del Registro di sistema esiste, il relativo valore viene sovrascritto dall'argomento isEnabled quando SetSwitch viene chiamato. Ovvero, la chiamata più recente al SetSwitch metodo esegue l'override del valore definito nel Registro di sistema, in un file di configurazione dell'app o tramite chiamate precedenti al SetSwitch metodo .