處理 XML 檔案 (Visual Basic)
編譯器會針對程式碼中,標記為要產生文件的每個建構產生識別碼字串。 (如需如何標記程式碼的資訊,請參閱 XML 批註標記)。識別碼字串可唯一識別此建構。 處理 XML 檔案的程式可以使用識別碼字串,來識別相應的 .NET Framework 中繼資料/反映項目。
XML 檔案不會以階層方式呈現您的程式碼,它是含有針對每個項目所產生識別碼的一般清單。
編譯器在產生識別碼字串時會遵守下列規則:
字串中未放置任何空白字元。
識別碼字串的第一個部分會識別所識別的成員種類,格式為單一字元後面接著一個冒號。 使用的成員類型如下所示。
字元 | 描述 |
---|---|
否 | 命名空間 您無法將文件註解新增至命名空間,但可讓 CREF 參考它們 (如果支援)。 |
T | 型別:Class 、Module 、Interface 、Structure 、Enum 、Delegate |
F | 欄位:Dim |
P | 屬性:Property (包括預設屬性) |
月 | 方法: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