Teilen über


Verarbeiten der XML-Datei (Visual Basic)

Für jedes Konstrukt, das zum Generieren von Dokumentation gekennzeichnet ist, wird vom Compiler eine ID-Zeichenfolge generiert. (Informationen zum Tagging des Codes finden Sie unter XML-Kommentartags.) Die ID-Zeichenfolge identifiziert das Konstrukt eindeutig. Programme, die die XML-Datei verarbeiten, können mithilfe der ID-Zeichenfolge das entsprechende .NET Framework-Metadaten-/Reflektionselement identifizieren.

Die XML-Datei enthält keine hierarchische Darstellung des Codes. Es handelt sich um eine flache Liste mit einer generierten ID für jedes Element.

Der Compiler beachtet beim Generieren der ID-Zeichenfolgen die folgenden Regeln:

  • In der Zeichenfolge wird kein Leerraum platziert.

  • Der erste Teil der ID-Zeichenfolge kennzeichnet die Art des zu identifizierenden Members durch ein einzelnes Zeichen, gefolgt von einem Doppelpunkt. Die folgenden Membertypen werden verwendet.

Zeichen Beschreibung
N namespace

Einem Namespace können keine Dokumentationskommentare hinzugefügt werden. Falls unterstützt, können jedoch CREF-Verweise hinzugefügt werden.
T Typ: Class, Module, Interface, Structure, Enum, Delegate
F Feld: Dim
P Eigenschaft: Property (einschließlich Standardeigenschaften)
M Methode: Sub, Function, Declare, Operator
E Ereignis: Event
! Fehlerzeichenfolge

Der verbleibende Teil der Zeichenfolge enthält Fehlerinformationen. Vom Visual Basic-Compiler werden Fehlerinformationen für Links erstellt, die nicht aufgelöst werden können.
  • Beim zweiten Teil der String handelt es sich um den vollqualifizierten Namen eines Elements, beginnend mit dem Namespace-Stammverzeichnis. Der Name des Elements, der oder die einschließenden Typen und der Namespace sind durch Punkte getrennt. Wenn der Name des Elements selbst Punkte enthält, werden sie durch ein Rautezeichen (#) ersetzt. Es wird vorausgesetzt, dass kein Element direkt im Namen ein Rautezeichen enthält. Der vollqualifizierte Name des String-Konstruktors würde beispielsweise System.String.#ctor lauten.

  • Wenn es sich bei Eigenschaften und Methoden um Argumente der Methode handelt, folgt die in Klammern eingeschlossene Argumentliste. Wenn keine Argumente vorhanden sind, werden keine Klammern verwendet. Die Argumente werden durch Kommas voneinander getrennt. Die Codierung jedes Arguments erfolgt genauso wie die Codierung in einer .NET Framework-Signatur.

Beispiel

Der folgende Code veranschaulicht, wie die ID-Zeichenfolgen für eine Klasse und ihre Member generiert werden.

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

Siehe auch