Processando o arquivo XML (Visual Basic)
O compilador gera uma cadeia de caracteres de ID para cada construção em seu código que é marcada para gerar documentação. (Para obter informações sobre como marcar seu código, consulte Tags de comentário XML.) A cadeia de caracteres ID identifica exclusivamente a construção. Os programas que processam o arquivo XML podem usar a cadeia de caracteres de ID para identificar o item de metadados/reflexão do .NET Framework correspondente.
O arquivo XML não é uma representação hierárquica do seu código; é uma lista simples com um ID gerado 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 ID identifica o tipo de membro que está sendo identificado, com um único caractere seguido por dois pontos. Os seguintes tipos de membros são usados.
Caráter | Description |
---|---|
N | espaço de nomes Não é possível adicionar comentários de documentação a um namespace, mas é possível fazer referências CREF a eles, quando suportado. |
T | Tipo: Class , Module , Interface , Structure , Enum , Delegate |
F | domínio: Dim |
P | propriedade: Property (incluindo propriedades padrão) |
Seg | método: Sub , Function , Declare , , Operator |
E | Evento: Event |
! | seqüência 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 é o
String
nome totalmente qualificado do item, começando na raiz do namespace. O nome do item, o(s) seu(s) tipo(s) de inclusão, e o namespace são separados por pontos. Se o nome do item em si contiver pontos, eles serão substituídos pelo sinal numérico (#). Supõe-se que nenhum item tenha um sinal numérico diretamente em seu nome. Por exemplo, o nome totalmente qualificado doString
construtor seriaSystem.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, não há parênteses. 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 para 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