Поделиться через


Обработка XML-файла (Visual Basic)

Компилятор создает строку идентификатора для каждой конструкции в коде, отмеченной для создания документации (сведения о том, как использовать теги в коде, cм. в разделе Рекомендуется использовать XML-теги для комментариев документации (Visual Basic)). Строка идентификатора однозначно определяет конструкцию. Программы обработки XML-файлов могут использовать строку идентификатор для идентификации соответствующего элемента метаданных или отражений .NET Framework.

XML-файл не является иерархическим представлением кода; он содержит список с созданным идентификатором для каждого элемента.

Компилятор следует приведенным ниже правилам при формировании строк идентификаторов:

  • Пробел не помещается в строку.

  • Первая часть строки идентификатора определяет тип идентифицированного члена в виде одного символа с последующим двоеточием. Используются следующие типы элементов.

Знак

Описание

N

Пространству имен

Нельзя добавлять документированные комментарии к пространству имен, но можно сделать CREF-ссылки на них, если они поддерживаются.

T

Тип: Class, Module, Interface, Structure, Enum, Delegate

F

Поле Dim

P

Свойство Property (включая свойства по умолчанию)

M

Метод Sub, Function, Declare, Operator

E

Событие Event

!

Строка ошибки

Остальная часть строки содержит сведения об ошибке. Компилятор Visual Basic создает сведения об ошибках для ссылок, которые не могут быть разрешены.

  • Вторая часть String — это полное имя элемента, начиная с корневого пространства имен. Имя элемента, включающий его тип и пространство имен разделяются точками. Если имя элемента содержит точки, они заменяются решетками (#). Предполагается, что элемент не имеет символов решетки непосредственно в имени. Например полное имя конструктора String будет System.String.#ctor.

  • Для свойств и методов при наличии аргументов метода, список аргументов следует заключить в скобки. Если аргументов нет, скобки отсутствуют. Несколько аргументов разделяются запятыми. Кодировка каждого аргумента следует непосредственно из того, как он кодируется в сигнатуре .NET Framework.

Пример

В следующем коде показано как создаются строки идентификаторы для класса и его членов.

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

См. также

Задачи

Практическое руководство. Создание XML-документации в Visual Basic

Ссылки

/doc