民间,

我正在创建一个新的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)可以重复使用现有程序集中的匹配类型。

10-06 11:39