AppContext.TryGetSwitch(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.
Tente d’obtenir la valeur d’un commutateur.
public:
static bool TryGetSwitch(System::String ^ switchName, [Runtime::InteropServices::Out] bool % isEnabled);
public static bool TryGetSwitch (string switchName, out bool isEnabled);
static member TryGetSwitch : string * bool -> bool
Public Shared Function TryGetSwitch (switchName As String, ByRef isEnabled As Boolean) As Boolean
Paramètres
- switchName
- String
Nom du commutateur.
- isEnabled
- Boolean
Cette méthode la valeur de switchName
si switchName
a été trouvé, ou false
si switchName
est introuvable. Ce paramètre est passé sans être initialisé.
Retours
true
si switchName
a été défini et que l’argument isEnabled
contient la valeur du commutateur ; sinon, false
.
Exceptions
switchName
a la valeur null
.
switchName
a la valeur Empty.
Exemples
L’exemple suivant détermine si un consommateur de bibliothèque a défini un commutateur nommé Switch.AmazingLib.ThrowOnException
.
public class AmazingLib
{
private bool shouldThrow;
public void PerformAnOperation()
{
if (!AppContext.TryGetSwitch("Switch.AmazingLib.ThrowOnException", out shouldThrow)) {
// This is the case where the switch value was not set by the application.
// The library can choose to get the value of shouldThrow by other means.
// If no overrides or default values are specified, the value should be 'false'.
// A false value implies the latest behavior.
}
// The library can use the value of shouldThrow to throw exceptions or not.
if (shouldThrow) {
// old code
}
else {
// new code
}
}
}
module AmazingLib =
let performAnOperation () =
match AppContext.TryGetSwitch "Switch.AmazingLib.ThrowOnException" with
| false, _ ->
// This is the case where the switch value was not set by the application.
// The library can choose to get the value of shouldThrow by other means.
// If no overrides or default values are specified, the value should be 'false'.
// A false value implies the latest behavior.
()
| true, shouldThrow ->
// The library can use the value of shouldThrow to throw exceptions or not.
if shouldThrow then
// old code
()
else
// new code
()
Public Class AmazingLib
Private shouldThrow As Boolean
Public Sub PerformAnOperation()
If Not AppContext.TryGetSwitch("Switch.AmazingLib.ThrowOnException", shouldThrow) Then
' This is the case where the switch value was not set by the application.
' The library can choose to get the value of shouldThrow by other means.
' If no overrides or default values are specified, the value should be 'false'.
' A false value implies the latest behavior.
End If
' The library can use the value of shouldThrow to throw exceptions or not.
If shouldThrow Then
' old code
Else
' new code
End If
End Sub
End Class
Remarques
La AppContext classe permet aux rédacteurs de bibliothèque de fournir un mécanisme de refus uniforme pour les nouvelles fonctionnalités pour leurs utilisateurs. Elle établit un contrat souple entre les composants pour la communication des demandes de désactivation. Cette fonctionnalité est particulièrement importante quand une modification est apportée aux fonctionnalités existantes. À l'inverse, il existe déjà une activation implicite des nouvelles fonctionnalités.
Le Common Language Runtime remplit automatiquement les commutateurs affectés à un AppContext instance en lisant le Registre et le fichier de configuration de l’application. La valeur de ces commutateurs peut ensuite être remplacée et de nouveaux commutateurs ajoutés en appelant la SetSwitch méthode .
Une bibliothèque appelle la TryGetSwitch méthode pour case activée si ses consommateurs ont déclaré la valeur du commutateur, puis agissent correctement sur celle-ci. Par défaut, si le commutateur n’est pas défini, la nouvelle fonctionnalité est activée. Si le commutateur est défini et que sa valeur est false
, la nouvelle fonctionnalité est également activée. Si sa valeur est true
, le comportement hérité est activé.