民间,
我正在创建一个新的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参数视而不见,还是真的没有办法自动在元数据中生成此文档?
编辑:好的,根据Marc Gravell的回答,注释和文档字符串既不在编译的DLL中,也不能通过MEX元数据交换协议使用(可惜!)。
那么,那么:如果需要向第三方提供他们访问您的服务所需的信息,您将如何记录WCF服务?周围是否有“ NService”或“ WCF沙堡”工具可以扫描我的WCF服务库,并根据源代码(包括注释)构造WSDL和XSD?
似乎找不到很多工具和方法来做到这一点-老实说,这让我感到惊讶。
渣
最佳答案
svcutil.exe使用“ mex” API,并且只能访问元数据的子集。不包括评论(在很大程度上,IIRC也不是[DescriptionAttribute]
)。
您可能必须依靠外部文档(即帮助页面/枯树)。另一种选择(尽管它违反了许多纯SOA规则)是将实体/接口运送到dll + xml中; svcutil(和IDE)可以重复使用现有程序集中的匹配类型。