XML ファイルの処理 (Visual Basic)
コンパイラは、ドキュメントを生成するためにタグ付けされたコードのコンストラクトごとに、ID 文字列を生成します。 (コードをタグ付けする方法については、XML ドキュメント コメントのタグに関する記事をご覧ください。)ID 文字列によって、コンストラクトは一意に識別されます。 XML ファイルを処理するプログラムでは、ID 文字列を使用して、対応する .NET Framework のメタデータまたはリフレクション項目を識別できます。
XML ファイルは、コードの階層表現ではなく、要素ごとに生成された ID を持つフラット リストです。
コンパイラは、次の規則に基づいて ID 文字列を生成します。
文字列に空白は配置されません。
ID 文字列の最初の部分は、単一の文字とそれに続くコロンで識別されるメンバーの種類を示します。 次のメンバー型が使用されます。
文字 | 説明 |
---|---|
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
関連項目
.NET