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 , , Interface Module , Structure , , Enum Delegate |
F | Pole: Dim |
P | właściwość: Property (w tym właściwości domyślne) |
M | metoda: Sub , , Declare Function ,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 konstruktoraString
toSystem.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