Compartilhar via


Processando o arquivo XML (Visual Basic)

O compilador gera uma cadeia de caracteres de ID para cada constructo em seu código marcado para gerar documentação. (Para obter informações sobre como marcar seu código, consulte Marcas de Comentário XML.) A cadeia de caracteres de ID identifica exclusivamente o constructo. Os programas que processam o arquivo XML podem usar a cadeia de caracteres de ID para identificar o item de metadados/reflexão correspondente do .NET Framework.

O arquivo XML não é uma representação hierárquica do seu código; é uma lista simples com uma ID gerada para cada elemento.

O compilador observa as seguintes regras quando gera as cadeias de caracteres de ID:

  • Nenhum espaço em branco é colocado na cadeia de caracteres.

  • A primeira parte da cadeia de caracteres de ID identifica o tipo de membro que está sendo identificado, com um único caractere seguido por dois-pontos. Os tipos de membro a seguir são usados.

Personagem Descrição
N Espaço de nomes

Não é possível adicionar comentários de documentação a um namespace, mas você pode fazer referências CREF a eles, onde houver suporte.
T type: Class, Module, , Interface, Structure, , EnumDelegate
F campo: Dim
P propriedade: Property (incluindo propriedades padrão)
M method: Sub, Function, , Declare, Operator
E evento: Event
! string de erro

O restante da cadeia de caracteres fornece informações sobre o erro. O compilador do Visual Basic gera informações de erro para links que não podem ser resolvidos.
  • A segunda parte do String é o nome totalmente qualificado do item, começando na raiz do namespace. O nome do item, seus tipos de delimitamento e o namespace são separados por períodos. Se o nome do item em si contiver períodos, eles serão substituídos pelo sinal de número (#). Supõe-se que nenhum item tenha um sinal de número diretamente em seu nome. Por exemplo, o nome totalmente qualificado do String construtor seria System.String.#ctor.

  • Para propriedades e métodos, se houver argumentos para o método, a lista de argumentos entre parênteses segue. Se não houver argumentos, nenhum parêntese estará presente. Os argumentos são separados por vírgulas. A codificação de cada argumento segue diretamente como ele é codificado em uma assinatura do .NET Framework.

Exemplo

O código a seguir mostra como as cadeias de caracteres de ID de uma classe e seus membros são geradas.

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 também