AppContext.SetSwitch(String, Boolean) Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Définit la valeur d’un commutateur.
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)
Paramètres
- switchName
- String
Nom du commutateur.
- isEnabled
- Boolean
Valeur du commutateur.
Exceptions
switchName a la valeur null.
switchName a la valeur Empty.
Exemples
La ligne de code suivante définit un commutateur nommé Switch.AmazingLib.ThrowOnException sur true, qui active un comportement hérité. La bibliothèque peut ensuite vérifier si un consommateur de bibliothèque a défini la valeur du commutateur en appelant la TryGetSwitch méthode.
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true);
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", true)
AppContext.SetSwitch("Switch.AmazingLib.ThrowOnException", True)
Remarques
La AppContext classe permet aux auteurs de bibliothèque de fournir un mécanisme d'annulation uniforme pour les nouvelles fonctionnalités à leurs utilisateurs. Il établit un contrat faiblement couplé entre les composants afin de communiquer une demande d’opt-out. Cette fonctionnalité est généralement importante lorsqu’une modification est apportée aux fonctionnalités existantes. À l’inverse, il existe déjà un opt-in implicite pour de nouvelles fonctionnalités.
La SetSwitch méthode est appelée par une application (ou une bibliothèque) pour déclarer la valeur d’un commutateur (qui est toujours une valeur) qu’une Boolean bibliothèque dépendante définit. Le commutateur est toujours implicitement false, ce qui fournit le nouveau comportement. Pour obtenir le comportement hérité, définissez le commutateur sur true pour l’activer. En définissant explicitement le commutateur sur false, on obtient également le nouveau comportement. La bibliothèque dépendante peut ensuite vérifier la valeur du commutateur en appelant la TryGetSwitch méthode.
Note
Il est utile d’utiliser un format cohérent pour les noms de commutateurs, car ils sont un contrat formel exposé par une bibliothèque. Voici deux formats évidents.
- Switch.espace de noms.switchname
- Commutateur.bibliothèque.nom_commutateur
Pour les applications s’exécutant sur .NET Framework, en plus de définir la valeur d’un commutateur par programmation, elle peut également être définie :
En ajoutant le nom et la valeur du commutateur à l’élément <AppContextSwitchOverrides> dans la <section runtime> d’un fichier de configuration d’application. Par exemple, l’exemple suivant définit un commutateur nommé
Libraries.FPLibrary.UseExactFloatingPointComparisondont la valeur estFalse.<configuration> <runtime> <AppContextSwitchOverrides value="Libraries.FPLibrary.UseExactFloatingPointComparison=false" /> </runtime> </configuration>En ajoutant une valeur de chaîne dont le nom est le nom du commutateur au HKLM\SOFTWARE\Microsoft\. NETFramework\AppContext (et HKLM\SOFTWARE\Wow6432Node\Microsoft\. Sous-clés NETFramework\AppContext) dans le Registre. Sa valeur doit être la représentation sous forme de chaîne d’un Boolean qui peut être analysée par la Boolean.Parse méthode ; autrement dit, elle doit être « True », « true », « false » ou « false ».
Si l’entrée de Registre existe, sa valeur est remplacée par l’argument isEnabled lorsqu’elle SetSwitch est appelée. Autrement dit, l’appel le plus récent à la SetSwitch méthode remplace la valeur définie dans le Registre, dans un fichier de configuration d’application ou par des appels précédents à la SetSwitch méthode.