5

私は VS 2005 の下で C# でクラス ライブラリを作成しています (私は知っていますが、現代ではわかりますが、ここでは予算が限られています)。

XML ドキュメントで「概要」タグを使用すると、ユーザーは Intellisense やツールチップなどを介してその情報を確認できますが、Studio の [プロパティ] ウィンドウでは確認できないようです。

そのウィンドウで何かを取得するには、[Description("This is it")]属性を使用する必要があるようです。

私はこれで正しいですか?もしそうなら、説明情報を複製する必要があるようです:-(

または、より良い方法はありますか?ありがとう!

4

3 に答える 3

8

それは正解です。2 つの方法の目的は大きく異なります。

  • コメントは、/// <summary></summary>コンパイル時にプロジェクトの XML ドキュメントを生成するために使用されます。これは、Visual Studio によって IntelliSense データベース用に解析されます。

  • [DescriptionAttribute]、デザイナーで使用される説明テキストを提供します。最も顕著なのは [プロパティ] ウィンドウの下部です。

Microsoft 独自の Windows Forms ライブラリには、これらの両方が散らばっています。

2 つをマージする方法はわかりませんが、本当にまったく同じにしたいのかどうかを検討してください。自分のクラス ライブラリでは、技術ドキュメントに含めたい情報とは少し異なる情報をデザイナーに表示したいことがよくあります。

<remarks>簡単な例として、このプロパティは特定のバージョンの Windows ではサポートされていないことをデザイナーで明確にする必要があるかもしれませんが、この情報はテクニカル ドキュメントの次のセクションに任せます。

/// <summary>
/// Gets or sets a value indicating whether a shield should be displayed
/// on this control to indicate that process elevation is required.
/// </summary>
/// <remarks>
/// The elevation-required shield is only supported under Windows Vista
/// and later. The value of this property will be ignored under earlier
/// operating systems.
/// </remarks>
[Category("Appearance")]
[Description("Displays a shield to indicate that elevation is required. " +
             "(Only applies under Windows Vista and later.)")]
public bool ShowShield { get; set; }
于 2011-04-04T15:20:19.543 に答える
2

概要 XML ドキュメント タグと説明属性は、2 つの完全に異なるものです。

summary タグは、コンポーネントのDOCUMENTATIONで使用するためのものです。

Description 属性は、コントロール コンポーネント モデルの一部であり、実行時にアプリケーションで使用できます。つまり、info がバイナリ アセンブリ ファイルにコンパイルされます。Description 属性のコンテンツは、アプリケーションのエンド ユーザーにも表示される可能性があります (たとえば、PropertyGrid コントロールを使用している場合)。

ドキュメントを探している場合は、XML ドキュメントのみを使用してください。再利用可能なコンポーネントを作成する場合は、Description 属性も使用できます。

于 2011-04-04T15:22:21.750 に答える
0

私の理解では、あなたは正しいです。ただし、GhostDoc を使用すると、この作業のほとんどを自動化できます。GhostDocには、カスタマイズして Description 属性を追加できる無料バージョンがあります。

于 2011-04-04T15:21:58.203 に答える