Обработка 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