ソース コードの一部を XML ドキュメントに追加したいと思います。次のように、ソース コードをいくつかの <code> 要素にコピー & ペーストできます。
/// <summary>
/// Says hello world in a very basic way:
/// <code>
/// System.Console.WriteLine("Hello World!");
/// System.Console.WriteLine("Press any key to exit.");
/// System.Console.ReadKey();
/// </code>
/// </summary>
static void Main()
{
System.Console.WriteLine("Hello World!");
System.Console.WriteLine("Press any key to exit.");
System.Console.ReadKey();
}
これを維持するのは苦痛でしょう。C# の XML ドキュメントにソース コードを追加する可能性は他にありますか?
Sandcastle で XML ドキュメントを処理しており、そこからテクニカル ヘルプ ファイル (*.chm) を作成したいと考えています。そのヘルプ ファイルに、一部または完全なメソッド本体を追加したいと考えています。
編集: slide_rule からのコメントをありがとう。より現実的であまり自明ではない例を追加しました。
次のようなメソッドがあるとします。
public decimal CalculateFee(Bill bill)
{
if (bill.TotalSum < 5000) return 500;
else
{
if (bill.ContainsSpecialOffer) return bill.TotalSum * 0.01;
else return bill.TotalSum * 0.02;
}
}
料金の計算方法に関する情報をテクニカル ヘルプ ファイルに追加できると便利です。
最も明白な解決策は、アルゴリズムを平凡なテキストとしてコメントに書き留めることです。
別の解決策は、メソッドの本文をコピーしてコメント フィールドに貼り付け、それを <code> 要素に入れることです。このメソッド本体は、C# についてあまり知識がなくても非常に簡単に理解できます。そのため、テクニカル ヘルプ ファイルに記述しても問題はありません。
どちらのソリューションも DRY の原則に違反しています。情報を複製せずに、メソッド本体またはメソッド本体の一部をヘルプ ファイルに追加したいと考えています。
これはC#で可能ですか? (RDoc for Ruby はこれを行うことができると思いますが、C# での解決策が必要です)