6

多くのアセンブリを外部のお客様に提供していますが、すべてのパブリック API が正式にサポートされているわけではありません。たとえば、設計の選択が最適とは言えないため、コードの残りの部分が機能するために型をアセンブリからパブリックに公開する必要がある場合がありますが、顧客にはその型を使用してほしくありません。サポートの欠如を伝える 1 つの部分は、XML コメントの形式でインテリセンスを提供しないことです。

XML コメントを選択的に抑制する方法はありますか? 長期的なメンテナンスの問題であるため、警告 1591 を無視する以外の何かを探しています。

例: パブリック クラス A と B を持つアセンブリがあります。A は公式にサポートされており、XML ドキュメントが必要です。B は外部使用を意図していないため、文書化しないでください。XML ドキュメントをオンにして、警告 1591 を抑制することもできます。しかし、後で公式にサポートされているクラス C を追加するときに、XML ドキュメントの追加に失敗して失敗したことをコンパイラに通知してもらいたいのです。プロジェクト レベルで 1591 を抑制した場合、これは発生しません。クラス全体で #pragma できると思いますが、これを行うためのより良い方法があるはずです。

4

4 に答える 4

5

そのようなメソッドを作成し、それらを公開するアセンブリに属性をinternal追加します。[assembly: InternalsVisibleTo("AssemblyName")]

于 2010-03-19T01:04:43.220 に答える
3

サポートの欠如を伝えることの一部は、XMLコメントの形式でインテリセンスを提供することではありません。

代わりに、これらのメソッドに簡単な<summary>外部使用不可</ summary>コメントを付けてコメントできますか?

于 2011-04-18T15:44:39.770 に答える
3

インテリセンスをまったく提供しないのはどうですか?

///<summary>A documentation</summary> 
public class A { }

///<summary>B documentation. This class is not supported...</summary> 
[EditorBrowsable(EditorBrowsableState.Advanced)]
public class B { }

///<summary>C documentation</summary> 
public class C { }

このようにして、サポートされていないクラスを文書化し (内部ユーザーも重要です!)、外部ユーザーがそれらを IntelliSense で見ないようにすることができます。内部的には、Visual Studio がこれらの高度な構成要素を "参照" できるようにすることができます。のページには、次のEditorBrowsableAttribute方法が記載されています。

Visual C# では、高度なプロパティが IntelliSense と [プロパティ] ウィンドウに表示されるタイミングを、[ツール] の下の [高度なメンバーを非表示] 設定で制御できます。オプション | テキストエディタ | C#. 対応する EditorBrowsableState は Advanced です。

于 2011-04-18T15:49:16.633 に答える
2

#pragmaディレクティブを使用して、特定の警告を有効または無効にしてみてください。

///<summary>some documentation</summary>
public class A{
    //...
}

#pragma warning disable 1591
public class B{
    //...
}
于 2011-04-18T15:26:17.120 に答える