昆明网站搭建公司,兰州网络推广专员,推广普通话征文,织梦源码怎样做单页网站一般一个已经实现功能的WEB Server会发布自己的WSDL文件#xff0c;供客户端生成代理类。 但有时是先有的server与client交互的接口定义#xff08;WSDL#xff09;文件#xff0c;然后由server和client端分别写程序#xff0c;一个提供web服务#xff0c;一个使用web服…一般一个已经实现功能的WEB Server会发布自己的WSDL文件供客户端生成代理类。 但有时是先有的server与client交互的接口定义WSDL文件然后由server和client端分别写程序一个提供web服务一个使用web服务。 以下介绍如何由已有的WSDL文件在VS2005中生成server端代码。 1使用VS2005提供的工具wsdl.exe由WSDL文件生成cs文件 使用wsdl.exe的/serverInterface选项或缩写的 /si指定输入的wsdl文件注意如果要转换的wsdl文件中import了其他wsdl文件则所有文件都应列出包括使用到的xsd文件也应列 出。输出将是 一个代码文件默认是C#的如果需要别的语言参考MSDN中wsdl.exe的使用说明其中包含每个 wsdl 绑定的接口。 示例假设ServerInterfaceSample.wsdl文件中import了importedSample.wsdl并使用Service.xsd作为schema文件 wsdl.exe /si ServerInterfaceSample.wsdl importedSample.wsdl Service.xsd 生成代码如下: //------------------------------------------------------------------------------// auto-generated// This code was generated by a tool.// Runtime Version:2.0.50727.42//// Changes to this file may cause incorrect behavior and will be lost if// the code is regenerated.// /auto-generated//------------------------------------------------------------------------------ using System;using System.ComponentModel;using System.Diagnostics;using System.Web.Services;using System.Web.Services.Protocols;using System.Xml.Serialization; // // This source code was auto-generated by wsdl, Version2.0.50727.42.// /// remarks/[System.CodeDom.Compiler.GeneratedCodeAttribute(wsdl, 2.0.50727.42)][System.Web.Services.WebServiceBindingAttribute(Nameorg.csapi.cs.IpChargingManagerSOAPBinding, Namespacehttp://www.csapi.org/cs/wsdl)]public interface IOrgcsapicsIpChargingManagerSOAPBinding { /// remarks/ [System.Web.Services.WebMethodAttribute()] [System.Web.Services.Protocols.SoapDocumentMethodAttribute(, RequestElementNameorg.csapi.cs.IpChargingManager.createChargingSession, RequestNamespacehttp://www.csapi.org/cs/schema, ResponseElementNameorg.csapi.cs.IpChargingManager.createChargingSessionResult, ResponseNamespacehttp://www.csapi.org/cs/schema, UseSystem.Web.Services.Description.SoapBindingUse.Literal, ParameterStyleSystem.Web.Services.Protocols.SoapParameterStyle.Wrapped)] [return: System.Xml.Serialization.XmlElementAttribute(return, FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] orgcsapicsTpChargingSessionID createChargingSession([System.Xml.Serialization.XmlElementAttribute(FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] EndpointReferenceType appChargingSession, [System.Xml.Serialization.XmlElementAttribute(FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] string sessionDescription, [System.Xml.Serialization.XmlElementAttribute(FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] orgcsapicsTpMerchantAccountID merchantAccount, [System.Xml.Serialization.XmlElementAttribute(FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] orgcsapiTpAddress user, [System.Xml.Serialization.XmlElementAttribute(FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] orgcsapicsTpCorrelationID correlationID); /// remarks/ [System.Web.Services.WebMethodAttribute()] [System.Web.Services.Protocols.SoapDocumentMethodAttribute(, RequestElementNameorg.csapi.cs.IpChargingManager.createSplitChargingSession, RequestNamespacehttp://www.csapi.org/cs/schema, ResponseElementNameorg.csapi.cs.IpChargingManager.createSplitChargingSessionResult, ResponseNamespacehttp://www.csapi.org/cs/schema, UseSystem.Web.Services.Description.SoapBindingUse.Literal, ParameterStyleSystem.Web.Services.Protocols.SoapParameterStyle.Wrapped)] [return: System.Xml.Serialization.XmlElementAttribute(return, FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] orgcsapicsTpChargingSessionID createSplitChargingSession([System.Xml.Serialization.XmlElementAttribute(FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] EndpointReferenceType appChargingSession, [System.Xml.Serialization.XmlElementAttribute(FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] string sessionDescription, [System.Xml.Serialization.XmlElementAttribute(FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] orgcsapicsTpMerchantAccountID merchantAccount, [System.Xml.Serialization.XmlArrayAttribute(FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] [System.Xml.Serialization.XmlArrayItemAttribute(item, FormSystem.Xml.Schema.XmlSchemaForm.Unqualified, IsNullablefalse)] orgcsapiTpAddress[] users, [System.Xml.Serialization.XmlElementAttribute(FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] orgcsapicsTpCorrelationID correlationID); /// remarks/ [System.Web.Services.WebMethodAttribute()] [System.Web.Services.Protocols.SoapDocumentMethodAttribute(, RequestElementNameorg.csapi.IpService.setCallback, RequestNamespacehttp://www.csapi.org/osa/schema, ResponseElementNameorg.csapi.IpService.setCallbackResult, ResponseNamespacehttp://www.csapi.org/osa/schema, UseSystem.Web.Services.Description.SoapBindingUse.Literal, ParameterStyleSystem.Web.Services.Protocols.SoapParameterStyle.Wrapped)] void setCallback([System.Xml.Serialization.XmlElementAttribute(FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] EndpointReferenceType appInterface); /// remarks/ [System.Web.Services.WebMethodAttribute()] [System.Web.Services.Protocols.SoapDocumentMethodAttribute(, RequestElementNameorg.csapi.IpService.setCallbackWithSessionID, RequestNamespacehttp://www.csapi.org/osa/schema, ResponseElementNameorg.csapi.IpService.setCallbackWithSessionIDResult, ResponseNamespacehttp://www.csapi.org/osa/schema, UseSystem.Web.Services.Description.SoapBindingUse.Literal, ParameterStyleSystem.Web.Services.Protocols.SoapParameterStyle.Wrapped)] void setCallbackWithSessionID([System.Xml.Serialization.XmlElementAttribute(FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] EndpointReferenceType appInterface, [System.Xml.Serialization.XmlElementAttribute(FormSystem.Xml.Schema.XmlSchemaForm.Unqualified)] int sessionID);} 代码中有一个接口类,并给出了接口函数声明. 此功能的优点是将实现代码和协定代码如接口所定义的那样分开。 如果更改 wsdl然后重新生成接口则不会丢失任何实现代码。 若要遵循建议的设计指南则不应将任何代码放置在更改 wsdl 协定的实现中。 同样不应使用影响运行时行为的代码来更改接口。 协定和实现的详细信息应该分开。 2) 在VS IDE中新建一个web service工程,加入新生成的**Interface.cs文件.将自动生成的Service类改为从加入的Interface接口类派生,并实现所有的接口函数.(注意名空间一致) [WebService(Namespace http://www.csapi.org/cs/wsdl)][WebServiceBinding(ConformsTo WsiProfiles.BasicProfile1_1)]public class Service : IOrgcsapicsIpChargingManagerSOAPBinding{ public orgcsapicsTpChargingSessionID createChargingSession(EndpointReferenceType appChargingSession, string sessionDescription, orgcsapicsTpMerchantAccountID merchantAccount, orgcsapiTpAddress user,orgcsapicsTpCorrelationID correlationID) { return new orgcsapicsTpChargingSessionID(); } public orgcsapicsTpChargingSessionID createSplitChargingSession(EndpointReferenceType appChargingSession, string sessionDescription, orgcsapicsTpMerchantAccountID merchantAccount, orgcsapiTpAddress[] users, orgcsapicsTpCorrelationID correlationID) { return new orgcsapicsTpChargingSessionID(); } public void setCallback(EndpointReferenceType appInterface) { } public void setCallbackWithSessionID(EndpointReferenceType appInterface, int sessionID) { } }转载于:https://www.cnblogs.com/wenanry/archive/2011/12/31/2308162.html