Sdílet prostřednictvím


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, EnumDelegate
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 konstruktoru String by byl System.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

Viz také