Zpracování souboru XML (Visual Basic)
Kompilátor vygeneruje řetězec ID pro každý konstruktor v kódu, který je označen k vygenerování dokumentace. (Informace o označování kódu najdete v tématu .Značky komentářů XML.) Řetězec ID jednoznačně identifikuje konstruktor. Programy, které zpracovávají soubor XML, mohou použít řetězec ID k identifikaci odpovídající položky metadat nebo reflexe rozhraní .NET Framework.
Soubor XML není hierarchické znázornění vašeho kódu; je to plochý seznam s vygenerovaným ID pro každý prvek.
Kompilátor při generování řetězců ID dodržuje následující pravidla:
V řetězci není žádné prázdné znaky.
První část řetězce ID identifikuje druh identifikovaného člena s jedním znakem následovaným dvojtečku. Používají se následující typy členů.
Znak | Popis |
---|---|
N | namespace Do oboru názvů nemůžete přidávat komentáře dokumentace, ale můžete na ně v případě podpory vytvořit odkazy CREF. |
T | typ: Class , Module , Interface , Structure , Enum Delegate |
F | Pole: Dim |
P | vlastnost: Property (včetně výchozích vlastností) |
M | metoda: Sub , Function , Declare , Operator |
E | Událost: Event |
! | řetězec chyby Zbytek řetězce poskytuje informace o chybě. Kompilátor jazyka Visual Basic generuje informace o chybě pro odkazy, které nelze vyřešit. |
Druhá část
String
je plně kvalifikovaný název položky počínaje kořenem oboru názvů. Název položky, jeho uzavřené typy a obor názvů jsou oddělené tečkami. Pokud název samotné položky obsahuje tečky, nahradí se znaménkem čísla (#). Předpokládá se, že žádná položka nemá v názvu znak čísla přímo. Například plně kvalifikovaný název konstruktoruString
by bylSystem.String.#ctor
.Pro vlastnosti a metody, pokud existují argumenty metody, seznam argumentů uzavřený v závorkách následuje. Pokud neexistují žádné argumenty, nejsou k dispozici žádné závorky. Argumenty jsou oddělené čárkami. Kódování každého argumentu přímo sleduje, jak je kódován v podpisu rozhraní .NET Framework.
Příklad
Následující kód ukazuje, jak se generují řetězce ID pro třídu a její členy.
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