首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

从WCF/.Net向WSDL输出添加注释

从WCF/.Net向WSDL输出添加注释的方法如下:

  1. 在WCF服务的接口定义中,使用System.ComponentModel.DescriptionAttribute特性为服务、操作、数据类型和数据成员添加描述性注释。

例如:

代码语言:csharp
复制
[ServiceContract]
public interface IMyService
{
    [OperationContract]
    [Description("This is a sample operation")]
    string GetData(int value);
}
  1. 在WCF服务的实现中,使用System.ComponentModel.DataAnnotations.DisplayAttribute特性为服务、操作、数据类型和数据成员添加描述性注释。

例如:

代码语言:csharp
复制
[ServiceBehavior]
public class MyService : IMyService
{
    [Display(Description = "This is a sample operation")]
    public string GetData(int value)
    {
        return string.Format("You entered: {0}", value);
    }
}
  1. 使用WCF的行为扩展功能,将注释添加到WSDL中。

例如:

代码语言:csharp
复制
public class WsdlDocumentationBehavior : IWsdlExportExtension
{
    public void ExportContract(WsdlExporter exporter, WsdlContractConversionContext context)
    {
        foreach (OperationDescription operation in context.Contract.Operations)
        {
            AddDocumentation(operation, operation.SyncMethod);
        }
    }

    private void AddDocumentation(OperationDescription operation, MethodInfo method)
    {
        string documentation = GetDocumentation(method);
        if (!string.IsNullOrEmpty(documentation))
        {
            operation.Documentation = documentation;
        }
    }

    private string GetDocumentation(MethodInfo method)
    {
        object[] attributes = method.GetCustomAttributes(typeof(DescriptionAttribute), false);
        if (attributes.Length > 0)
        {
            return ((DescriptionAttribute)attributes[0]).Description;
        }
        return null;
    }
}
  1. 在WCF服务的配置文件中,启用WSDL文档行为扩展。

例如:

代码语言:xml<system.serviceModel>
复制
 <extensions>
    <behaviorExtensions>
      <add name="wsdlDocumentation" type="MyService.WsdlDocumentationBehavior, MyService, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null"/>
    </behaviorExtensions>
  </extensions>
  <behaviors>
   <serviceBehaviors>
      <behavior>
       <serviceMetadata httpGetEnabled="true" httpGetUrl=""/>
        <wsdlDocumentation/>
      </behavior>
    </serviceBehaviors>
  </behaviors>
 <services>
   <service name="MyService.MyService">
     <endpoint address="" binding="basicHttpBinding" contract="MyService.IMyService"/>
    </service>
  </services>
</system.serviceModel>

通过以上步骤,可以将注释添加到WSDL输出中,以便其他开发人员更好地理解和使用WCF服务。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

使用 WCF Web Service Reference Provider 工具

WCF Web 服务引用工具是 Visual Studio 连接服务的扩展,提供了类似于 .NET Core 和 ASP.NET Core 项目的“添加服务引用”功能的体验 。...此工具可从网络位置的当前解决方案的 web 服务中或 WSDL 文件中检索元数据,并生成包含可用于访问 web 服务的 Windows Communication Foundation (WCF) 客户端代理代码的可兼容...,本文将介绍如何该项目中添加 WCF 服务引用 : 在解决方案资源管理器中,双击项目的“连接的服务”节点(对于 .NET Core 或 .NET Standard 项目,当在解决方案资源管理器中右键单击项目的...要选择包含 Web 服务元数据信息的 WSDL 文件,请单击“浏览”按钮 。 3b. “服务”框内的搜索结果列表中选择服务 。...在显示进度的同时,工具: WCF 服务下载元数据。 在名为“reference.cs”的文件中生成服务引用代码,并将其添加到“连接的服务”节点下的项目 。

1.9K30

CoreWCF 1.0.0 发布,微软正式支持WCF

Matt Connew最终决定 将花一些时间打磨一下的原型实现,包括添加NetTcp支持,并将代码捐赠给开源社区,托管到.NET基金会,看看这是否社区将围绕它构建的东西,以便在Microsoft之外生存下去...随后,我们开始社区获得一些较小的贡献。添加对未包含的狭窄方案的支持,或修复新代码无法处理的边缘情况。随着时间的流逝,社区贡献的规模和数量逐渐不断增加。...我们最近达到了一个里程碑,即Matt Connew 核心 WCF 存储库贡献的提交不到一半,有一个Core WCF社区来推动WCF的演进。...我们已经在 ASP.NET Core的连接处理程序功能之上实现了NetTcp,因此涵盖了支持会话传输的内容。剩下的主要事情是 WSDL 支持。...随着最近 WSDL 生成的完成,我们现在处于一个阶段,我们认为核心 WCF 应该对许多使用 WCF 的开发人员有用。 仍然缺少一些值得注意的功能。

70420
  • 我的WCF之旅(5):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的重载(Overloading)

    所以我们完全可以通过一定消息交换的输入消息(Input Message)和输出(Output Message )定义一个Operation。而WSDL也是这样做的。...:operation> 和XML Web Service,WCF也面临一样的问题——我觉得我们可以把WCF看成.NET平台下新一代的Web Service。...WCF到底是什么东西,我在前面的文章中不断地提出这个问题,在这里我们 另外一个方面来看待WCF。...而WCF则可以看成是这一整套Specification的实现。但是这种实现最终还是落实到我们.NET编程上。...就像在使用XML Web Service中添加Web Reference一样,添加Server Reference会为Client添加相应的客户端代码——倒入的Service Contract,继承自ClientBase

    1K70

    使用WCF进行跨平台开发之二(IIS托管WCF服务并使用php平台调用)1.系统必备2.在IIS中托管WCF服务3.使用PHP调用托管在IIS中的WCF服务

    而后必须的当然是php环境,这就根据您自己的需求配置啦,但是必须注意的是,必须打开php.ini中soap的扩展,步骤是,打开php.ini,搜索php_soap.dll,去掉前面的注释“;”,然后重起...2.在IIS中托管WCF服务      在IIS默认网站中添加应用程序emp,并在高级设置中,设置应用程序池为“ASP.NET v4.0”,并设置默认网站右键--编辑版定,在http类型中编辑IP地址和主机名...这里设置的原因是,第一,php平台在局域网中的另外一台机器上,主机名这里的设置,是因为主机名影响wsdl的生成,如果不设置,在wsdl中生成的location包括的是托管机器名而不是ip地址。     ...在新建的虚拟目录对应的实际目录中,添加web.config文件,配置wcf服务和终结点,并打开元数据公开,然而,因为这里不是使用常用的svc文件托管的服务,所以需要serviceActivations节点配置服务...wsdl"); //php使用以数组的字符串下标对应.net的属性名称 $params=array(); $params["Id"

    2.1K70

    WCF 4.5:配置文件更小,对ASP.NET的支持更好

    Ido Flatow最近发布了一篇文章,其中讲述了一系列WCF将在.NET 4.5中做出的变更。 由于减少了噪音,WCF自动生成的配置文件会大大减小。...WCF的第一个版本开始,开发者就发现他们需要维护有接近30种设定的app.config文件,而事实上都只是默认值。了解配置文件的人会删除冗余的设定,但是遗憾的是很多人都没有学到这项技巧。...对于那些直接使用WSDL的人,也有好消息。WCF 4.5现在会在单独的请求中返回完整的WSDL。而之前,它只会包括部分WSDL,还需要获取一系列匹配的XSD文件。想要使用这种方法,你需要使用?....NET 4.0开始,WCF就有了为每种绑定类型(HTTP、TCP等)自动生成端口的选项。遗憾的是,HTTPS并没有在那次包含进来,这个疏忽会在.NET 4.5中改正。...Ori认为, 当你把WCF服务部署在IIS中时,即便你不使用ASP.NET兼容模式,也会占用一些ASP.NET的管道,这在MSDN的文章《WCF 服务和ASP.NET》中有记录(你需要查找关于PostAuthenticateRequest

    89850

    WCF技术剖析之二十六:如何导出WCF服务的元数据(Metadata)

    元数据的导出就是实现从ServiceEndpoint对象MetadataSet对象转换的过程,在WCF元数据框架体系中,元数据的导出工作由MetadataExporter实现。...WCF定义一个具体的MetadataExporter:WsdlExporter,将基于某个终结点的元数据导出生成基于WSDL的MetadataSet。...正是因为WSDL是目前描述Web服务做好的语言,建立WCF终结点与WSDL元素之间的匹配关系,以及基于该匹配关系的元数据导入和导出的实现,是WCF元数据框架体系的一个最为重要的目标。...在第1节对WSDL的介绍中,我们已经谈过了WCF下终结点三要素(地址、绑定和契约)与组成一份完成WSDL文档(基于WSDL 1.1)的5个元素之间的匹配关系,现在我们进行一个简单的总结。...图1 WSDL各元素和终结点三要素之间的匹配关系 图1我们不难看出:WSDL中Service元素的一个Port元素实际上就代表着整个ServiceEndpoint对象,Port下的Address元素即终结点的地址

    75360

    WCF技术剖析》博文系列汇总

    所以WCF下的序列化(Serialization)解决的就是如何将数据对象的表现形式转变成XML表现形式,以确保数据的正常交换。...WCF 提供了一系列可供选择的编码方式,它们分别在互操作和性能各具优势。在本篇文章我们将对各种编码方式进行消息的讨论。 互操作性的角度来看,编码方法很大程度上决定了跨平台支持的能力。...WSDL的Binding元素来源于终结点的绑定对象,那么这些基于Binding的元数据以及相应的策略断言是如何被写入WSDL的呢?...WSDL导出扩展(WSDL Export Extension)和策略导出扩展(Policy Export Extension)就是为此设计的。...[第29篇] 换种不同的方式调用WCF服务[提供源代码下载] 我们有两种典型的WCF调用方式:通过SvcUtil.exe(或者添加Web引用)导入发布的服务元数据生成服务代理相关的代码和配置;通过ChannelFactory

    1.4K100

    WCF入门(6)

    地址:http://stackoverflow.com/questions/21522493/what-was-the-difference-between-wsdl-mex-endpoint-in-wcf...站在使用者的角度,我试着拿掉了endpoint有关mex的定义,以及注释了behaviors节点,然后访问http://localhost:8080/ 页面给了我这么一个提示: 还是回到了最初。...首先,我们来实现一个EmployeeService,主要的作用是用来根据id查询Employee,以及数据库插入Employee。下面开始介绍: 数据库部分 ?...在介绍下面东西之前,我们先介绍几个概念 什么是Serialization和Deserialization WCF角度来说,Serialization(序列化)是个转换的过程,它把一个实体类转换为XML...那是因为,framework 3.5开始,如果我们没有使用DataContract 或者DataMember 特性,那么WCF的DataContractSerializer会自动把所有的public属性按照字典序的顺序序列化

    30520

    WCF技术剖析之二十一:WCF基本异常处理模式

    通过WCF基本的异常处理模式[上篇], 我们知道了:在默认的情况下,服务端在执行某个服务操作时抛出的异常(在这里指非FaultException异常),其相关的错误信息仅仅限于服务端可见,并不会被WCF...} 25: } 26: } 27: } 28: } 29: } 输出结果...WCF通过两种典型序列化器实现对数据对象的序列化和反序列化,其中一个是传统的System.Xml.Serialization.XmlSerializer,该序列换器被ASP.NET Web服务用于对象和...在《WCF技术剖析(卷1)》中,我们曾多次对契约进行过深入的探讨。抽象层面上讲,契约时交互双方或者多方就某一问题达成的一种共识,使确保正常交互指定的一系列的规范。...本质上讲,服务契约(Service Contract)中的每一个操作契约(Operation Contract),定义了WCF为实现该服务操作的调用采用的消息交换模式(MEP:Message Exchange

    1.2K110

    WCF和ASP.NET Web API在应用上的选择

    WCF最初为基于SOAP的服务而设计,首先支持的是WS-*功能,但后来添加了少量迎合REST的功能。...Let’s start with WCF configuration What’s new in WCF 4.5? A single WSDL file What’s new in WCF 4.5?...支持URL路由,透过用户熟悉的MVC风格路由语义,生成干净的URL 根据Accept标头对请求和响应的序列化形式进行内容协商(Content Negotiation) 支持大量输出格式,包括JSON、XML...、ATOM等 默认对REST语义有完善支持,同时又不强制限定必须使用REST语义 易于扩展的Formatter机制,支持添加新的输入/输出类型 可通过HttpResponseMessage类、HttpRequestMessage...我们完全也可以这样搭配,在内部通讯采用WCF + Protobuf-NET,参看《WCF服务上应用protobuf》,对外的服务采用ASP.NET WEB API。

    1.4K80

    菜菜零学习WCF三(配置服务)

    在其中可以定义和自定义如何客户端公开服务,包括指定可以找到服务的地址、服务用于发送和接收消息的传输和消息编码,以及服务需要的安全类型。   ...--可使用.NET Framework配置技术对WCF服务进行配置。通常情况下,承载WCF服务的Intrnet信息服务(IIS)网站的Web.config文件添加XML元素。...此外,WCF包括几个系统提供的元素,可用于快速选择服务的最基本的功能   --WCF使用.NET Framework的System.Configuration配置系统     1.使用IIS来承载服务-...--NetNamePipeBinding:使用.NET.FrameWork连接到同一计算机上的其他WCF终结点。   ...--NetMsmqBinding:使用.NET Framework创建与其他WCF终结点的排队消息连接。

    79410

    .NET 附加工具概述

    dotnet-gcdump 提供为活动 .NET 进程收集 GC(垃圾回收器)转储的方式。 dotnet-trace 会你的应用收集分析数据,这些数据可帮助你了解应用运行速度缓慢的原因。...此工具可从网络位置上当前解决方案的 Web 服务中,或 WSDL 文件中检索元数据。 还可生成与 .NET 兼容的源文件并使用可用于访问 Web 服务操作的方法定义 WCF 代理类。...WCF dotnet-svcutil 工具 WCF dotnet-svcutil 工具是一个 .NET 工具,可从网络位置上的 Web 服务中或 WSDL 文件中检索元数据。...还可生成与 .NET 兼容的源文件并使用可用于访问 Web 服务操作的方法定义 WCF 代理类。....NET 代码覆盖率工具 可使用 dotnet-coverage 任何 .NET 进程收集代码覆盖率。

    78250

    WCF技术剖析之二十五: 元数据(Metadata)架构体系全景展现

    对这两个规范不是很熟悉的读者,可以W3C的网站上下载官方文档。此外,在《WCF技术剖析(卷1)》的第2章和第6章对WS-Addressing 1.0和SOAP 1.2进行了概括性的介绍。...如今,WCF完全支持的还是WSDL 1.1版本,所以接下来我们将针对这个版本对WSDL作一个简单的介绍,对于希望了解WSDL1.1的读者可以后面的地址下载官方文档:http://www.w3.org/...为了有效地了解WSDL的结构,我们首先来看看一段直接官方文档上拷贝出来的WSDL文档: 1: <?xml version="1.0"?...通知操作由单一的输出消息组成,在WSDL中的表示如下: 1: 2: * 3: <wsdl...所以,这两种类类型的操作除了输出消息和输入消息的描述之外,还具有错误消息的描述。错误消息在操作中通过<wsdl:fault/〉表示。

    3.1K100

    ASP.NET中使用HttpWebRequest调用WCF

    最近项目需要和第三网站进行数据交换,第三方网站基本都是RESTfull形式的API,但是也有的是Web Service,或者.NET里面的WCF。微软鼓励大家使用WCF替代Web Service。...【说明】本来想演示调用Web Service,自己的电脑只装vs express for web,也没有安装.net framework3.5,所以只能演示调用WCF。...自动化调用Web CF实例 第1步:创建一个WCF项目,一个空的Web项目,添加一个Default form。 ?...在WcfService_Client的引用文件夹右键,如下图所示,点击“添加服务引用”。 ? 第3步 如果自己项目中WCF服务不是非常多,可以点击“发现”,如果知道WCF项目的发布地址也是可以的。...如果对方也是WCF写的服务端的话,可以进入如下图所示界面,然后点击以”?wsdl”结尾的链接。 ? 可以看到是一个xml文件,里面有一个 ?

    2.4K90
    领券