首页
学习
活动
专区
工具
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服务。

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

相关·内容

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

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

74420

使用 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
  • 使用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之旅(5):面向服务架构(SOA)和面向对象编程(OOP)的结合——如何实现Service Contract的重载(Overloading)

    所以我们完全可以通过一定消息交换的输入消息(Input Message)和输出(Output Message )定义一个Operation。而WSDL也是这样做的。...:operation> wsdl:portType> 和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 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

    90450

    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元素即终结点的地址

    77360

    《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属性按照字典序的顺序序列化

    31620

    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.3K110

    菜菜从零学习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终结点的排队消息连接。

    80310

    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.5K80

    .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 进程收集代码覆盖率。

    79650

    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: 输出消息组成,在WSDL中的表示如下: 1: wsdl:definitions …> 2: wsdl:portType …> * 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
    领券