[C#] 10.5 XML 문서 파일

이번에는 라이브러리를 만들 때 사용하는 곳에서 Microsoft Visual Studio의 인텔리센스 기능을 활용할 수 있게 해 봅시다. 프로젝트 속성 창에서 빌드 탭을 선택하여 XML 문서 파일을 체크하세요.

XML 문서 파일 출력 설정
[그림 10.10] XML 문서 파일 출력 설정

 그리고 빌드하면 공개한 멤버 형식에 주석이 없다는 경고 메시지가 나타납니다. XML 문서 파일 출력을 설정하면 가시성이 public인 형식과 멤버에 대한 세 줄 주석으로 XML 양식에 맞는 설명이 없으면 경고 메시지가 뜹니다. 다음과 같이 코드를 약간 변경한 후에 주석을 달아봅시다.

using System;
namespace DemoLib
{
    /// <summary>
    /// 데모 클래스
    /// </summary>
    public class DemoClass
    {
        /// <summary>
        /// Foo 메서드
        /// </summary>
        /// <param name="a">첫번째 인자 </param>
        /// <param name="b">두번째 인자 </param>
        /// <returns> 첫번째 인자 + 두번째 인자 </returns>
        public int Foo(int a,int b)
        {
            Console.WriteLine("a:{0} b:{1}",a,b);
            return a + b;
        }
    }
}

그리고 콘솔 응용 프로그램을 생성한 후에 라이브러리를 참조 추가하고 천천히 Demo 형식의 개체를 생성하고 Foo 메서드를 호출하는 구문을 추가해 보세요. 다음처럼 인텔리센스 기능이 작동하여 메서드가 무엇을 의미하는지 인자가 무엇인지 설명하는 구문을 확인할 수 있습니다. 물론, 풍선 도움말에 나타나는 것은 XML 형식에 맞게 작성한 세 줄 주석에 작성한 내용입니다.

인텔리센스 작동 화면
[그림 10.11] 인텔리센스 작동 화면

[그림 10.11] 인텔리센스 작동 화면

다음은 출력 폴더에 만들어진 XML 파일의 내용입니다.

<?xml version="1.0"?>
<doc>
    <assembly>
        <name>DemoLib</name>
    </assembly>
    <members>
        <member name="T:DemoLib.DemoClass">
            <summary>
            데모 클래스
            </summary>
        </member>
        <member name="M:DemoLib.DemoClass.Foo(System.Int32,System.Int32)">
            <summary>
            Foo 메서드
            </summary>
            <param name="a">첫 번째 인자</param>
            <param name="b">두 번째 인자</param>
            <returns> 첫 번째 인자 + 두 번째 인자</returns>
        </member>
    </members>
</doc>

여러 명이 팀 작업을 할 때 이와 같은 기능은 많은 도움을 줍니다. 평소에도 XML 문서 출력 속성을 설정하여 세 줄 주석을 다는 것을 습관화하세요. 자신이 작성한 라이브러리도 사용하기 편하고 다른 동료도 여러분이 만든 라이브러리를 사용하기 편해질 것입니다.