處理 XML 檔案 (Visual Basic)
編譯器會為每一個加上標記的程式碼的建構產生一個 ID 字串,用來產生文件 (如需如何標記程式碼的相關資訊,請參閱建議可用於文件註解的 XML 標記 (Visual Basic))。 ID 字串會將建構獨一無二地識別出來。 處理 XML 檔案的程式可以使用 ID 字串,識別對應的 .NET Framework 中繼資料 (Metadata)/反映 (Reflection) 項目。
XML 檔案並不代表您程式碼的階層架構,它是一個平面圖式的清單,其中每個項目都有一個 ID。
在產生 ID 字串時,編譯器會遵守下列的規則:
字串中不能有空白。
ID 字串的第一個部分 (單一字元後接著一個分號) 識別了成員的種類。 下面是使用的成員型別 (Member Type):
字元 |
描述 |
N |
namespace 您不能將文件註解加入至命名空間 (Namespace),但是可以產生這些文件註解的 CREF 參考 (如果有支援這項功能)。 |
T |
型別:Class、Module、Interface、Structure、Enum、Delegate |
F |
欄位:Dim |
P |
屬性:Property (包括預設屬性) |
M |
方法:Sub、Function、Declare、Operator |
E |
事件:Event |
! |
錯誤字串 字串的其餘部分會提供該錯誤的相關資訊。 Visual Basic 編譯器對於無法解析的連結會產生錯誤資訊。 |
String 的第二個部分是項目的完整名稱 (開始於命名空間的根)。 項目的名稱、其封入型別 (Enclosing Type) 和命名空間是以句號分隔的。 若項目的名稱本身含有句號,則句號會被井字號 (#) 所取代。 一般都認定在項目的名稱中沒有井字號 (#)。 例如,String 建構函式的完整名稱為 System.String.#ctor。
對於屬性和方法,若方法有引數,則後面會接著由括號括起來的引數清單。 如果沒有引數,就不會有括弧出現。 引數間是以逗號來分隔。 每個引數的編碼直接遵照 .NET Framework 簽章中的編碼方式。
範例
下面程式碼顯示類別 (Class) 及其成員的 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
請參閱
工作
HOW TO:在 Visual Basic 中建立 XML 文件