XML Dosyasını İşleme (Visual Basic)

Derleyici, belge oluşturmak için etiketlenmiş kodunuzdaki her yapı için bir kimlik dizesi oluşturur. (Kodunuzu etiketleme hakkında bilgi için bkz. XML Açıklama Etiketleri.) Kimlik dizesi, yapısını benzersiz olarak tanımlar. XML dosyasını işleyen programlar, karşılık gelen .NET Framework meta verilerini/yansıma öğesini tanımlamak için kimlik dizesini kullanabilir.

XML dosyası kodunuzun hiyerarşik bir gösterimi değildir; her öğe için oluşturulan kimliği olan düz bir listedir.

Derleyici, kimlik dizelerini oluştururken aşağıdaki kuralları gözlemler:

  • Dizeye boşluk yerleştirilmemiş.

  • Kimlik dizesinin ilk bölümü, tek bir karakter ve ardından iki nokta üst üste ile tanımlanan üye türünü tanımlar. Aşağıdaki üye türleri kullanılır.

Karakter Açıklama
N ad alanı

Bir ad alanına belge açıklamaları ekleyemezsiniz, ancak desteklenen durumlarda bunlara CREF başvuruları yapabilirsiniz.
T type: Class, Module, Interface, Structure, Enum, Delegate
F Alan: Dim
P property: Property (varsayılan özellikler dahil)
M yöntem: Sub, Function, Declare, Operator
E Olay: Event
! hata dizesi

Dizenin geri kalanı hata hakkında bilgi sağlar. Visual Basic derleyicisi çözümlenemeyen bağlantılar için hata bilgileri oluşturur.
  • öğesinin String ikinci bölümü, ad alanının kökünden başlayarak öğenin tam adıdır. Öğenin adı, kapsayan türleri ve ad alanı noktalarla ayrılır. Öğenin adı nokta içeriyorsa, bunlar sayı işareti (#) ile değiştirilir. Hiçbir öğenin adında doğrudan bir sayı işareti olmadığı varsayılır. Örneğin, oluşturucunun tam adı String olacaktır System.String.#ctor.

  • Özellikler ve yöntemler için, yöntemin bağımsız değişkenleri varsa, parantez içine alınmış bağımsız değişken listesi aşağıdadır. Bağımsız değişken yoksa, parantez yoktur. Bağımsız değişkenler virgülle ayrılır. Her bağımsız değişkenin kodlaması doğrudan bir .NET Framework imzasında nasıl kodlanmış olduğunu izler.

Örnek

Aşağıdaki kod, bir sınıf ve üyeleri için kimlik dizelerinin nasıl oluşturulduğunu gösterir.

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

Ayrıca bkz.