XML ファイルの処理 (Visual Basic)
コンパイラは、ドキュメントを生成するためにタグ付けされたコードの構成体ごとに、ID 文字列を生成します。(コードにタグを付ける方法については、「ドキュメント コメントとして推奨される XML タグ (Visual Basic)」を参照してください)。ID 文字列によって、構成体は一意に識別されます。XML ファイルを処理するプログラムは、ID 文字列を使用して、対応する .NET Framework メタデータ/リフレクション項目を識別できます。
XML ファイルは、コードの階層的表現ではなく、要素ごとに生成された ID のあるフラットなリストです。
コンパイラは、次の規則に基づいて ID 文字列を生成します。
生成される文字列に空白は含まれません。
ID 文字列の最初の部分には、単一の文字とコロンで、識別されるメンバーの種類を示します。使用されるメンバー型は次のとおりです。
文字 |
Description |
N |
namespace 名前空間にはドキュメント コメントを追加できませんが、サポートされている場合は、ドキュメント コメントへの CREF 参照を作成できます。 |
T |
型: Class、Module、Interface、Structure、Enum、Delegate。 |
F |
フィールド: Dim。 |
P |
プロパティ: Property (既定のプロパティを含む)。 |
M |
メソッド: Sub、Function、Declare、Operator。 |
E |
イベント: Event。 |
! |
エラー文字列 エラーに続く文字列で、エラーの内容を示します。Visual Basic コンパイラは、解決できないリンクのエラー情報を生成します。 |
String の 2 番目の部分は、項目の完全修飾名です。名前は、名前空間のルートから始まります。項目の名前、項目が含まれている型、および名前空間は、ピリオド (.) で区切られます。項目の名前自体にピリオドが含まれている場合は、シャープ記号 (#) に置き換えられます。項目の名前にはシャープ記号がないことが前提です。たとえば、String コンストラクターの完全修飾名は System.String.#ctor となります。
プロパティおよびメソッドについては、メソッドに引数がある場合は、引数のリストをかっこで囲み、メソッドに続けて指定します。引数がない場合は、かっこはありません。引数の区切り文字には、コンマを使用します。各引数は、.NET Framework のシグネチャでの引数のエンコードとまったく同じ方法でエンコードされます。
使用例
次のコードは、クラスおよびそのメンバーの ID 文字列がどのように生成されるかを示します。
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
参照
処理手順
方法 : Visual Basic で XML ドキュメントを作成する