Compartir a través de


Procesamiento del archivo XML (Visual Basic)

El compilador genera una cadena de identificador para cada construcción del código que se etiqueta para generar documentación. (Para obtener información sobre cómo etiquetar el código, vea Etiquetas de comentario XML). La cadena de identificador identifica de forma única la construcción. Los programas que procesan el archivo XML pueden usar la cadena de identificador para identificar el elemento de reflexión y metadatos de .NET Framework correspondiente.

El archivo XML no es una representación jerárquica del código; es una lista plana con un identificador generado para cada elemento.

El compilador observa las siguientes reglas cuando genera las cadenas de identificador:

  • No se coloca espacio en blanco en la cadena.

  • La primera parte de la cadena ID identifica el tipo de miembro identificado, mediante un carácter único seguido de dos puntos. Se usan los siguientes tipos de miembro.

Carácter Descripción
N Espacio de nombres (namespace)

No se pueden agregar comentarios de documentación a un espacio de nombres, pero es posible hacer referencias CREF a estos, donde sea posible.
T type: Class, Module, Interface, Structure, , , EnumDelegate
F campo: Dim
P property: Property (incluidas las propiedades predeterminadas)
M method: Sub, Function, , DeclareOperator
E evento: Event
! cadena de error

El resto de la cadena proporciona información sobre el error. El compilador de Visual Basic genera información de error para vínculos que no se pueden resolver.
  • La segunda parte de String es el nombre completo del elemento, empezando por la raíz del espacio de nombres. El nombre del elemento, sus tipos envolventes y el espacio de nombres están separados por puntos. Si el nombre del elemento ya contiene puntos, estos se reemplazan por el signo de número (#). Se supone que ningún elemento tiene un signo numérico directamente en su nombre. Por ejemplo, el nombre completo del String constructor sería System.String.#ctor.

  • En el caso de las propiedades y los métodos, si hay argumentos para el método, la lista de argumentos incluida entre paréntesis sigue. Si no hay argumentos, no hay paréntesis. Los argumentos están separados por comas. La codificación de cada argumento sigue directamente cómo se codifica en una firma de .NET Framework.

Ejemplo

El código siguiente muestra cómo se generan las cadenas de identificador de una clase y sus miembros.

Namespace SampleNamespace

  ''' <summary>Signature is
  ''' "T:SampleNamespace.SampleClass"
  ''' </summary>
  Public Class SampleClass

    ''' <summary>Signature is
    ''' "M:SampleNamespace.SampleClass.#ctor"
    ''' </summary>
    Public Sub New()
    End Sub

    ''' <summary>Signature is
    ''' "M:SampleNamespace.SampleClass.#ctor(System.Int32)"
    ''' </summary>
    Public Sub New(ByVal i As Integer)
    End Sub

    ''' <summary>Signature is
    ''' "F:SampleNamespace.SampleClass.SampleField"
    ''' </summary>
    Public SampleField As String

    ''' <summary>Signature is
    ''' "F:SampleNamespace.SampleClass.SampleConstant"
    ''' </summary>
    Public Const SampleConstant As Integer = 42

    ''' <summary>Signature is
    ''' "M:SampleNamespace.SampleClass.SampleFunction"
    ''' </summary>
    Public Function SampleFunction() As Integer
    End Function

    ''' <summary>Signature is
    ''' "M:SampleNamespace.SampleClass.
    ''' SampleFunction(System.Int16[],System.Int32[0:,0:])"
    ''' </summary>
    Public Function SampleFunction(
        ByVal array1D() As Short,
        ByVal array2D(,) As Integer) As Integer
    End Function

    ''' <summary>Signature is
    ''' "M:SampleNamespace.SampleClass.
    ''' op_Addition(SampleNamespace.SampleClass,
    '''             SampleNamespace.SampleClass)"
    ''' </summary>
    Public Shared Operator +(
        ByVal operand1 As SampleClass,
        ByVal operand2 As SampleClass) As SampleClass

      Return Nothing
    End Operator

    ''' <summary>Signature is
    ''' "P:SampleNamespace.SampleClass.SampleProperty"
    ''' </summary>
    Public Property SampleProperty() As Integer
      Get
      End Get
      Set(ByVal value As Integer)
      End Set
    End Property

    ''' <summary>Signature is
    ''' "P:SampleNamespace.SampleClass.Item(System.String)"
    ''' </summary>
    Default Public ReadOnly Property Item(
        ByVal s As String) As Integer

      Get
      End Get
    End Property

    ''' <summary>Signature is
    ''' "T:SampleNamespace.SampleClass.NestedClass"
    ''' </summary>
    Public Class NestedClass
    End Class

    ''' <summary>Signature is
    ''' "E:SampleNamespace.SampleClass.SampleEvent(System.Int32)"
    ''' </summary>
    Public Event SampleEvent As SampleDelegate

    ''' <summary>Signature is
    ''' "T:SampleNamespace.SampleClass.SampleDelegate"
    ''' </summary>
    Public Delegate Sub SampleDelegate(ByVal i As Integer)
  End Class
End Namespace

Consulte también