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 commutatore denominato Switch.AmazingLib.ThrowOnException
su true
, 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 AppContext classe consente ai writer della libreria di fornire un meccanismo di consenso esplicito uniforme per le nuove funzionalità per gli utenti. Stabilisce un contratto associato in modo libero tra i componenti per comunicare una richiesta di rifiuto esplicito. Questa funzionalità è importante in genere quando viene apportata una modifica alle funzionalità esistenti. Al contrario, esiste già un consenso esplicito per la nuova funzionalità.
Il SetSwitch metodo viene chiamato da un'applicazione (o una libreria) per dichiarare il valore di un commutatore (che è sempre un Boolean valore) definito da una libreria dipendente. L'opzione è sempre implicitamente false
, che fornisce il nuovo comportamento. L'impostazione dell'opzione su true
consente di abilitarla, che fornisce il comportamento legacy. Impostando in modo esplicito l'opzione su false
fornisce anche il nuovo comportamento. La libreria dipendente può quindi controllare il valore dell'opzione chiamando il TryGetSwitch metodo .
Nota
È utile usare un formato coerente per i nomi degli switch, poiché sono un contratto formale esposto da una libreria. Di seguito sono riportati due formati ovvi.
- Opzione.spaziodeinomi.nomeopzione
- Opzione.libreria.nomeopzione
Per le applicazioni in esecuzione in .NET Framework, oltre a impostare il valore di un commutatore a livello di codice, può anche essere impostato:
Aggiungendo il nome del commutatore e il valore all'elemento <AppContextSwitchOverrides> nella <sezione runtime> di un file di configurazione dell'applicazione. Ad esempio, il seguente definisce un'opzione denominata
Libraries.FPLibrary.UseExactFloatingPointComparison
il cui valore èFalse
.<configuration> <runtime> <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" /> </runtime> </configuration>
Aggiungendo un valore stringa il cui nome è il nome dell'opzione a HKLM\SOFTWARE\Microsoft\. NETFramework\AppContext (e HKLM\SOFTWARE\Wow6432Node\Microsoft\. Sottochiavi NETFramework\AppContext) nel Registro di sistema. Il valore deve essere la rappresentazione stringa di un Boolean oggetto che può essere analizzato dal Boolean.Parse metodo, ovvero deve essere "True", "true", "False" o "false".
Se esiste la voce del Registro di sistema, 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 da chiamate precedenti al SetSwitch metodo.