【小ネタ】PartialクラスとXMLコメント

PartialクラスにXMLコメントを記述した場合、どのように出力されるんだろう?
...と、ふと疑問に思ったので試してみました。

下のようにPartialクラスとしてクラス定義を2つ作成します。
そして、それぞれのXMLコメントに適当なコメントを記述。


/// <summary>
    /// パーシャルクラスにコメントをつけてみるテスト1
    /// </summary>
    public partial class PartialClass1
    {
        /// <summary>
        /// デフォルトコンストラクタ
        /// </summary>
        public PartialClass1()
        {
        }
    }

    /// <summary>
    /// パーシャルクラスにコメントをつけてみるテスト2
    /// </summary>
    public partial class PartialClass1
    {
    }

このコメントをXMLに出力してみると...下記のように出力されました。

<?xml version="1.0"?>
<doc>
    <assembly>
        <name>PartialCommentTest</name>
    </assembly>
    <members>
        <member name="T:PartialCommentTest.PartialClass1">
            <summary>
            パーシャルクラスにコメントをつけてみるテスト1
            </summary>
            <summary>
            パーシャルクラスにコメントをつけてみるテスト2
            </summary>
        </member>
        <member name="M:PartialCommentTest.PartialClass1.#ctor">
            <summary>
            デフォルトコンストラクタ
            </summary>
        </member>
    </members>
</doc>

むむ、summary要素が2つに!!
ふーん、じゃあついでにNDocでドキュメントに変換してみる。
そうすると下記のように出力。

パーシャルクラスにコメントをつけてみるテスト1 

この型のすべてのメンバの一覧については、 PartialClass1 メンバを参照してください。

System.Object 
   PartialCommentTest.PartialClass1

public class PartialClass1
スレッドセーフ
この型の public static (Visual Basicでは Shared) のすべてのメンバは、 マルチスレッド操作で安全に使用できます。インスタンスのメンバの場合は、スレッドセーフであるとは限りません。

さすがに出力されませんね。
まぁ別にどうでも良いんだけど。。。(笑)

小ネタでした。