다음을 통해 공유


XML 파일 처리(Visual Basic)

컴파일러는 설명서를 생성하기 위해 태그가 지정된 코드의 각 구문에 대한 ID 문자열을 생성합니다. (코드에 태그를 지정하는 방법에 대한 자세한 내용은 XML 주석 태그를 참조하세요.) ID 문자열은 구문을 고유하게 식별합니다. XML 파일을 처리하는 프로그램은 ID 문자열을 사용하여 해당 .NET Framework 메타데이터/리플렉션 항목을 식별할 수 있습니다.

XML 파일은 코드의 계층적 표현이 아닙니다. 각 요소에 대해 생성된 ID가 있는 플랫 목록입니다.

컴파일러는 ID 문자열을 생성할 때 다음 규칙을 준수합니다.

  • 문자열에 공백이 삽입되지 않습니다.

  • ID 문자열의 첫 번째 부분은 식별되는 멤버의 종류를 식별하며, 단일 문자 뒤에 콜론이 있습니다. 다음 멤버 형식이 사용됩니다.

캐릭터 설명
N 네임스페이스

네임스페이스에 설명서 주석을 추가할 수는 없지만 지원되는 경우 CREF 참조를 만들 수 있습니다.
T type: Class, , ModuleInterfaceStructure, , EnumDelegate
F 필드: Dim
P property: Property (기본 속성 포함)
M method: Sub, Function, DeclareOperator
E 이벤트: Event
! 오류 문자열

나머지 문자열은 오류에 대한 정보를 제공합니다. Visual Basic 컴파일러는 확인할 수 없는 링크에 대한 오류 정보를 생성합니다.
  • 두 번째 부분은 String 네임스페이스의 루트에서 시작하여 항목의 정규화된 이름입니다. 항목의 이름, 포함 유형 및 네임스페이스는 마침표로 구분됩니다. 항목 이름에 마침표가 포함된 경우, 이는 숫자 기호(#)로 대체됩니다. 이름에 직접 숫자 기호가 있는 항목이 없는 것으로 가정합니다. 예를 들어 생성자의 정규화된 이름은 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

참고하십시오