Switch Clase
TOC
Collapse the table of content
Expand the table of content
Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Switch (Clase)

 

Proporciona una clase base abstracta para crear nuevos modificadores de depuración y traza.

Espacio de nombres:   System.Diagnostics
Ensamblado:  System (en System.dll)


Public MustInherit Class Switch

NombreDescripción
System_CAPS_protmethodSwitch(String, String)

Inicializa una nueva instancia de la clase Switch.

System_CAPS_protmethodSwitch(String, String, String)

Inicializa una nueva instancia de la clase Switch especificando el nombre para mostrar, la descripción y el valor predeterminado del modificador.

NombreDescripción
System_CAPS_pubpropertyAttributes

Obtiene los atributos de modificador personalizados definidos en el archivo de configuración de la aplicación.

System_CAPS_pubpropertyDescription

Obtiene una descripción del modificador.

System_CAPS_pubpropertyDisplayName

Obtiene el nombre utilizado para identificar el modificador.

System_CAPS_protpropertySwitchSetting

Obtiene o establece la configuración actual de este modificador.

System_CAPS_protpropertyValue

Obtiene o establece el valor del modificador.

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object.)

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object.)

System_CAPS_pubmethodGetHashCode()

Sirve como una función hash para un tipo en particular. (Heredado de Object.)

System_CAPS_protmethodGetSupportedAttributes()

Obtiene los atributos personalizados que admite el modificador.

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual. (Heredado de Object.)

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual. (Heredado de Object.)

System_CAPS_protmethodOnSwitchSettingChanged()

Se invoca cuando cambia la propiedad SwitchSetting.

System_CAPS_protmethodOnValueChanged()

Se invoca cuando cambia la propiedad Value.

System_CAPS_pubmethodToString()

Retorna una cadena que representa al objeto actual. (Heredado de Object.)

Los modificadores proporcionan un mecanismo eficaz para controlar los resultados de la traza y la depuración en tiempo de ejecución mediante una configuración externa.La clase Switch implementa el comportamiento predeterminado de los modificadores, permitiendo cambiar el nivel del modificador en tiempo de ejecución.

Ésta es la clase base de las clases BooleanSwitch, SourceSwitch y TraceSwitch.Estos modificadores satisfacen la mayoría de las necesidades de depuración y traza.Para obtener más información sobre los modificadores de seguimiento, vea Modificadores de seguimiento.

Para utilizar modificadores, se debe habilitar la traza o la depuración.La sintaxis siguiente es específica del compilador.Si se utilizan compiladores que no sean C# o Visual Basic, consulte la documentación del compilador.

  • Para habilitar la depuración en C#, agregue el marcador /d:DEBUG a la línea de comandos del compilador, al compilar el código, o agregue #define DEBUG al principio del archivo.En Visual Basic, agregue el marcador /d:DEBUG=True a la línea de comandos del compilador.

  • Para habilitar la traza en C#, agregue el marcador /d:TRACE a la línea de comandos del compilador, al compilar el código, o agregue #define TRACE al principio del archivo.En Visual Basic, agregue el marcador /d:TRACE=True a la línea de comandos del compilador.

Para establecer el nivel del modificador, modifique el archivo de configuración correspondiente al nombre de la aplicación.En el archivo, se puede agregar un modificador y se puede establecer su valor, quitar un modificador o borrar todos los modificadores previamente establecidos por la aplicación.El archivo de configuración debe tener el mismo formato que en el siguiente ejemplo:

<configuration>
  <system.diagnostics>
    <switches>
      <add name="mySwitch" value="true" />
    </switches>
  </system.diagnostics>
</configuration>

En esta sección de configuración de ejemplo se define un objeto BooleanSwitch con la propiedad DisplayName establecida en mySwitch y el valor de Enabled establecido en true.Dentro de la aplicación, puede utilizar el valor del modificador configurado creando un objeto BooleanSwitch con el mismo nombre, tal como se muestra en el ejemplo de código siguiente:

No hay ningún ejemplo de código disponible o este idioma no es compatible.

Notas para los herederos:

Si se necesitan niveles de seguimiento o algún mecanismo para configurar niveles de modificador diferentes de los proporcionados por BooleanSwitch, SourceSwitch y TraceSwitch, es posible heredarlos de Switch.Al heredar de esta clase, es necesario implementar el método SwitchSetting.

En el ejemplo siguiente se muestra cómo definir una nueva clase Switch con cuatro niveles de traza, que se pueden utilizar para hacer un seguimiento de una pila de llamadas.Es posible utilizar el modificador para instrumentar la aplicación en el registro cada vez que se entra o se sale del método.

En el primer ejemplo se crea la enumeración utilizada para establecer el nivel del modificador.

' The following are possible values for the new switch.
Public Enum MethodTracingSwitchLevel
    Off = 0
    EnteringMethod = 1
    ExitingMethod = 2
    Both = 3
End Enum 'MethodTracingSwitchLevel

En el ejemplo siguiente se crea el nuevo modificador.El código implementa una propiedad Level para establecer el valor del modificador nuevo. Level llama a la propiedad protegida SwitchSetting que asigna el valor al nuevo modificador.En este ejemplo se implementan también dos propiedades de evaluación para obtener el valor asignado del modificador.

Public Class MyMethodTracingSwitch
    Inherits Switch
    Protected outExit As Boolean
    Protected outEnter As Boolean
    Protected myLevel As MethodTracingSwitchLevel

    Public Sub New(displayName As String, description As String)
        MyBase.New(displayName, description)
    End Sub 'NewNew


    Public Property Level() As MethodTracingSwitchLevel
        Get
            Return myLevel
        End Get
        Set
            SetSwitchSetting(CInt(value))
        End Set
    End Property


    Protected Sub SetSwitchSetting(value As Integer)
        If value < 0 Then
            value = 0
        End If
        If value > 3 Then
            value = 3
        End If

        myLevel = CType(value, MethodTracingSwitchLevel)

        outEnter = False
        If value = CInt(MethodTracingSwitchLevel.EnteringMethod) Or _
            value = CInt(MethodTracingSwitchLevel.Both) Then

            outEnter = True
        End If

        outExit = False
        If value = CInt(MethodTracingSwitchLevel.ExitingMethod) Or _
            value = CInt(MethodTracingSwitchLevel.Both) Then

            outExit = True
        End If
    End Sub 'SetSwitchSetting


    Public ReadOnly Property OutputExit() As Boolean
        Get
            Return outExit
        End Get
    End Property


    Public ReadOnly Property OutputEnter() As Boolean
        Get
            Return outEnter
        End Get
    End Property
End Class 'MyMethodTracingSwitch

En el ejemplo siguiente se crea un nuevo modificador en Main.Se crea un nuevo modificador y se le asigna un valor.A continuación, y en función de la configuración del modificador, genera mensajes de depuración para entrar y salir del método.

Public Class Class1
    ' Create an instance of MyMethodTracingSwitch.
    Private Shared mySwitch As New _
        MyMethodTracingSwitch("Methods", "Trace entering and exiting method")

    Public Shared Sub Main()
        ' Add the console listener to see trace messages as console output
        Trace.Listeners.Add(New ConsoleTraceListener(True))
        Debug.AutoFlush = True

        ' Set the switch level to both enter and exit
        mySwitch.Level = MethodTracingSwitchLevel.Both

        ' Write a diagnostic message if the switch is set to entering.
        Debug.WriteLineIf(mySwitch.OutputEnter, "Entering Main")

        ' Insert code to handle processing here...

        ' Write another diagnostic message if the switch is set to exiting.
        Debug.WriteLineIf(mySwitch.OutputExit, "Exiting Main")
    End Sub
End Class 'MyClass

.NET Framework
Disponible desde 1.1

Los miembros estáticos públicos (Shared en Visual Basic) de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Volver al principio
Mostrar:
© 2016 Microsoft