다음을 통해 공유


XML 파일 처리(Visual Basic)

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

.XML 파일은 코드의 계층적 표현이 아니며 각 요소에 대해 생성된 ID를 포함하는 단순 목록입니다.

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

  • 문자열에 공백이 배치되지 않았습니다.

  • ID 문자열의 첫 부분이 뒤에 콜론이 붙은 한 글자로 식별 대상 멤버를 식별합니다. 사용되는 멤버 유형은 다음과 같습니다.

문자 설명
N namespace

네임스페이스에 문서 주석을 추가할 수는 없지만 지원되는 경우 문서 주석에 대한 CREF 참조를 만들 수는 있습니다.
T 형식: Class, Module, Interface, Structure, Enum, Delegate
F 필드: Dim
P 속성: Property(기본 속성 포함)
M 메서드: Sub, Function, Declare, Operator
E 이벤트: Event
! 오류 문자열

문자열의 나머지 부분은 오류에 대한 정보를 제공합니다. Visual C++ 컴파일러는 확인할 수 없는 링크에 대해 오류 정보를 생성합니다.
  • 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

참고 항목