svcutilがC#ファイルからドキュメントを取得するようにしますか?
-
11-07-2019 - |
質問
フォーク、
新しいWCFサービスを作成し、サービスインターフェイスで開始しました。次のようなものです:
public interface ISomethingService
{
/// <summary>
/// some description
/// </summary>
/// <version>2.13.0</version>
/// <copyright>2009 by myself</copyright>
/// <author>Marc Scheuner</author>
/// <param name="request">The request object</param>
[OperationContract]
SomethingResponse GetList(SomethingRequest request);
}
今、別のファイルにSomethingRequestおよびSomethingResponseメッセージを記述するデータコントラクトも作成しました。
プロジェクトをコンパイルし、svcutil.exeを起動してDLLからメタデータ(WSDLおよびXSD)を抽出しました-ただし、すべてのコメントと説明をWSDL /に取り込む方法があるかどうかはわかりませんXSDを/ノードに。
さらに別のあいまいなsvcutil.exeパラメーターを知らないのですか、それともメタデータでこのドキュメントを自動的に生成する方法は本当にありませんか?
編集:OK、Marc Gravellの回答に基づいて、コメントとドキュメント文字列はコンパイルされたDLLにも、MEXメタデータ交換プロトコル(残念!)でも利用できません。
では、サードパーティにサービスにアクセスするために必要な情報を提供する必要がある場合、WCFサービスをどのように文書化しますか? 「NService」はありますか?または「WCFのサンドキャッスル」その周りのツールは私のWCFサービスライブラリをスキャンし、注釈を含むソースコードからWSDLとXSDを構築しますか?
これを行うためのツールや方法を見つけることができないようです-正直、驚いたことに...
マーク
解決
svcutil.exeは&quot; mex&quot;を消費しますAPI。メタデータのサブセットにのみアクセスできます。コメントは含まれていません(IIRCでは、 [DescriptionAttribute]
はほとんどありません)。
外部ドキュメント(つまり、ヘルプページ/デッドツリー)に依存する必要がある場合があります。もう1つのオプション(多くの純粋なSOAルールに違反しますが)は、エンティティ+インターフェイスをdll + xmlで出荷することです。 svcutil(およびIDE)は、既存のアセンブリから一致するタイプを再利用できます。
他のヒント
おそらくこれが役立ちます: http://msdn.microsoft.com/en-us/library/aa717040。 aspx
svcutilでも機能します。