AppContext.TryGetSwitch(String, Boolean) AppContext.TryGetSwitch(String, Boolean) AppContext.TryGetSwitch(String, Boolean) AppContext.TryGetSwitch(String, Boolean) Method

Definição

Tenta obter o valor de um comutador.Tries to get the value of a switch.

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
Public Shared Function TryGetSwitch (switchName As String, ByRef isEnabled As Boolean) As Boolean

Parâmetros

switchName
String String String String

O nome de opção.The name of the switch.

isEnabled
Boolean Boolean Boolean Boolean

Quando esse método for retornado, conterá o valor de switchName se switchName tiver sido encontrada ou false se switchName não tiver sido.When this method returns, contains the value of switchName if switchName was found, or false if switchName was not found. Este parâmetro é passado não inicializado.This parameter is passed uninitialized.

Retornos

true se switchName estiver definido e o argumento isEnabled contiver o valor do comutador; caso contrário, false.true if switchName was set and the isEnabled argument contains the value of the switch; otherwise, false.

Exceções

Exemplos

O exemplo a seguir determina se um consumidor de biblioteca tiver definido um comutador chamado Switch.AmazingLib.ThrowOnException.The following example determines whether a library consumer has set a switch named 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
      }
   }
}
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

Comentários

O AppContext classe permite aos escritores de biblioteca fornecer um mecanismo de recusa uniforme para a nova funcionalidade para seus usuários.The AppContext class enables library writers to provide a uniform opt-out mechanism for new functionality for their users. Ela estabelece um contrato flexível entre componentes a fim de comunicar uma solicitação de recusa.It establishes a loosely-coupled contract between components in order to communicate an opt-out request. Normalmente, essa funcionalidade é importante quando uma alteração é feita na funcionalidade existente.This capability is typically important when a change is made to existing functionality. Por outro lado, já existe uma aceitação implícita da nova funcionalidade.Conversely, there is already an implicit opt-in for new functionality.

O common language runtime preenche automaticamente os comutadores atribuídos a um AppContext instância ao ler o registro e arquivo de configuração do aplicativo.The common language runtime automatically populates the switches assigned to an AppContext instance by reading the registry and the application's configuration file. O valor dessas opções, em seguida, pode ser substituído e adicionadas novas opções, chamando o SetSwitch método.The value of these switches can then be overridden, and new switches added, by calling the SetSwitch method.

Chama uma biblioteca de TryGetSwitch método para verificar se seus consumidores declarou o valor da opção e, em seguida, agir adequadamente nele.A library calls the TryGetSwitch method to check whether its consumers have declared the value of the switch and then act appropriately on it. Por padrão, se a opção não estiver definida, a nova funcionalidade é habilitada...By default, if the switch is not defined, the new functionality is enabled.. Se a opção é definida e seu valor é false, a nova funcionalidade também está habilitada.If the switch is defined and its value is false, the new functionality is also enabled. Se o valor for true, o comportamento herdado está habilitado.If its value is true, the legacy behavior is enabled.

Aplica-se a

Veja também