2009-04-15 44 views
7

XML Documentation Commentsを使用してアセンブリを文書化しています。Sandcastleを使用してchmファイルが作成されます。XMLドキュメントインターフェイスの実装とクラスの実装

私のアセンブリにはさまざまなインターフェイスが含まれています。それぞれのインターフェイスは1つのクラスで実装されています(私のシナリオではこれらはWCFサービスです)。

私はインターフェイスにドキュメントを追加しました。実装するクラスの関連するメソッドを自動的に文書化する方法はありますか?

答えて

1

サンドキャッスルでこのような自動文書化をサポートしていないようです。 Sandcastle Help File Builderはカスタムのinheritdocタグを実装していますが。

SHFBサイトから:

サポートは < inheritdoc /あなたがベース タイプ/メンバーから 継承のドキュメントを可能に>タグに含まれています。これは スタンドアロンツールで実装されているため、他のサードパーティのツールでは となり、 ビルドスクリプトでも使用できます。このツールは、 サンドキャッスルで提供される ビルドコンポーネントに含まれる機能を超えて、 の機能を提供します。

2回目の更新:this workitemによると、inheritdocためのサンドキャッスル "サポート" SHFBツールです。要するに、SHFBはあなたの問題を解決します。

1

GhostDocなどのツールでは、実装するクラスのキーボードショートカットを使用すると、そのドキュメントを生成できます。これは完全に自動ではありませんが、余分なコピー貼り付けを防ぐのに役立ちます。

おそらく、スクリプトを使用して自動化することができました。

+0

GhostDocは参照XMLファイルを変更できますか、または実際のコードを変更できますか?前者が真であれば、これはSandcastleと一緒に使用できます。 –

+0

GhostDocがコードを変更しました –

1

AtomineerUtilsは自動的にコメントを生成し、オーバーロードやオーバーライドされた基本クラスから既存のドキュメントを取り込み、必要な場所に情報を複製する際の負荷を軽減します。 FIXML

http://www.atomineer.com/AtomineerUtils.html

3

は、私はより良い答えを持っています。 GhostDocの\のAtomineerUtilsとコメントをクローニング

確か例えば、アプローチの作業が、それは重大な欠点を持っているされて:

  • 元のコメントが(頻繁に開発中に発生する)に変更された場合、 そのクローンではありません。
  • 大量の複製が作成されています。 ソースコード分析ツール(チームシティのDuplicate Finderなど)を使用している場合は、 が主にあなたのコメントを見つけるでしょう。
  • それが述べたように

Sandcastle<inheritdoc>タグがあるが、それはFIXMLに比較していくつかの欠点があります。

  • サンドキャッスルは、コンパイル済みHTMLヘルプファイルを作成する - それが.xmlファイルを変更しません。 には抽出されたXMLコメントが含まれています。しかし、これらのファイルは、.NET ReflectorとVisual Studio .NETのクラスブラウザ\ IntelliSenseを含む多くのツール によって使用されます。 Sandcastleだけを使用すると、そこに継承されたドキュメントは表示されません。
  • Sandcastleの実装は、それほど強力ではありません。例えば。 the noは <see ... copy="true" />です。

詳細については、Sandcastle's <inheritdoc> descriptionを参照してください。

FiXmlの簡単な説明:C#\ Visual Basic .Netで作成されたXMLドキュメントのポストプロセッサです。これはMSBuildタスクとして実装されているため、どのプロジェクトにも簡単に統合できます。基底クラスやインターフェイスからドキュメントを継承するための

  • はサポートされていません:それは、これらの言語でのXMLドキュメントを書くに関連するいくつかの厄介なケースに対応しています。I。オーバーライドされたメンバのドキュメントはゼロから書かなければなりませんが、通常、少なくともその一部を継承することが望ましいのです。
  • のような一般的に使用されるドキュメントテンプレートの挿入はサポート「このタイプは、シングルトンではない - それが唯一のインスタンスを取得するために、その<see cref="Instance" />プロパティを使用しています。」、あるいは「<CurrentType>クラスの新しいインスタンスを初期化します。」
  • <see cref="..." copy="..." />ます。attrib

    • <inheritdoc />, <inherited />タグ:

    は、以下の追加のXMLタグが提供され、上記の問題を解決するため、 uteは<see/>タグです。

ここにはits web pagedownload pageがあります。

+0

リンクが死んでいます... –

関連する問題