Udostępnij za pośrednictwem


Przetwarzanie pliku XML (Visual Basic)

Kompilator generuje ciąg identyfikatora dla każdej konstrukcji w kodzie oznaczonym tagiem w celu wygenerowania dokumentacji. (Aby uzyskać informacje na temat tagowania kodu, zobacz Tagi komentarzy XML. Ciąg identyfikatora jednoznacznie identyfikuje konstrukcję. Programy, które przetwarzają plik XML, mogą używać ciągu identyfikatora do identyfikowania odpowiedniego elementu metadanych/odbicia programu .NET Framework.

Plik XML nie jest hierarchiczną reprezentacją kodu; jest to płaska lista z wygenerowanym identyfikatorem dla każdego elementu.

Kompilator obserwuje następujące reguły podczas generowania ciągów identyfikatorów:

  • W ciągu nie jest umieszczana biała spacja.

  • Pierwsza część ciągu identyfikatora identyfikuje rodzaj identyfikowanego elementu członkowskiego z pojedynczym znakiem, po którym następuje dwukropek. Używane są następujące typy składowe.

Znak opis
N namespace

Nie można dodawać komentarzy do dokumentacji do przestrzeni nazw, ale możesz tworzyć odwołania CREF do nich, gdzie są obsługiwane.
T typ: Class, , InterfaceModule, Structure, , EnumDelegate
F Pole: Dim
P właściwość: Property (w tym właściwości domyślne)
M metoda: Sub, , DeclareFunction,Operator
E Zdarzenie: Event
! ciąg błędu

Pozostała część ciągu zawiera informacje o błędzie. Kompilator języka Visual Basic generuje informacje o błędach dla linków, których nie można rozpoznać.
  • Druga część elementu String to w pełni kwalifikowana nazwa elementu, zaczynając od katalogu głównego przestrzeni nazw. Nazwa elementu, jego otaczające typy i przestrzeń nazw są oddzielone kropkami. Jeśli nazwa samego elementu zawiera kropki, są one zastępowane znakiem numeru (#). Zakłada się, że żaden element nie ma znaku liczbowego bezpośrednio w jego nazwie. Na przykład w pełni kwalifikowana nazwa konstruktora String to System.String.#ctor.

  • W przypadku właściwości i metod, jeśli istnieją argumenty do metody, lista argumentów ujęta w nawiasy następuje. Jeśli nie ma żadnych argumentów, nie ma nawiasów. Argumenty są oddzielone przecinkami. Kodowanie każdego argumentu jest bezpośrednio kodowane w podpisie programu .NET Framework.

Przykład

Poniższy kod pokazuje, jak są generowane ciągi identyfikatorów klasy i jej składowych.

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

Zobacz też