共用方式為


處理 XML 檔案 (Visual Basic)

編譯器會為每一個加上標記的程式碼的建構產生一個 ID 字串,用來產生文件 (如需如何標記程式碼的相關資訊,請參閱建議可用於文件註解的 XML 標記 (Visual Basic))。ID 字串會將建構獨一無二地識別出來。 處理 XML 檔案的程式可以使用 ID 字串,識別對應的 .NET Framework 中繼資料 (Metadata)/反映 (Reflection) 項目。

XML 檔案並不代表您程式碼的階層架構,它是一個平面圖式的清單,其中每個項目都有一個 ID。

在產生 ID 字串時,編譯器會遵守下列的規則:

  • 字串中不能有空白。

  • ID 字串的第一個部分 (單一字元後接著一個分號) 識別了成員的種類。 下面是使用的成員型別 (Member Type):

字元

描述

N

命名空間

您不能將文件註解加入至命名空間 (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 文件

參考

/doc