由WSDL文件生成WEB service server端C#程序
来源:互联网 发布:淘宝卖水果需要许可证 编辑:程序博客网 时间:2024/05/10 00:58
http://www.cnblogs.com/wenanry/archive/2012/01/18/2325281.html
一般一个已经实现功能的WEB Server会发布自己的WSDL文件,供客户端生成代理类。
但有时是先有的server与client交互的接口定义(WSDL)文件,然后由server和client端分别写程序,一个提供web服务,一个使用web服务。
以下介绍如何由已有的WSDL文件在VS2008中生成server端代码。
1)使用VS2008提供的工具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文件;
//------------------------------------------------------------------------------// <auto-generated>// 此代码由工具生成。// 运行时版本:4.0.30319.235//// 对此文件的更改可能会导致不正确的行为,并且如果// 重新生成代码,这些更改将会丢失。// </auto-generated>//------------------------------------------------------------------------------using System;using System.ComponentModel;using System.Diagnostics;using System.Web.Services;using System.Web.Services.Protocols;using System.Xml.Serialization;// // 此源代码由 wsdl 自动生成, Version=4.0.30319.1。// /// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")][System.Web.Services.WebServiceBindingAttribute(Name="MessageNotificationBinding", Namespace="http://www.chinatelecom.com.cn/wsdl/ctcc/multimedia_messaging/notification/v2_2/s" + "ervice")]public interface IMessageNotificationBinding { NotifySOAPHeader NotifySOAPHeaderValue { get; set; } /// <remarks/> [System.Web.Services.Protocols.SoapHeaderAttribute("NotifySOAPHeaderValue")] [System.Web.Services.WebMethodAttribute()] [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)] [return: System.Xml.Serialization.XmlElementAttribute("notifyMessageReceptionResponse", Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/notification/v2_2" + "/local")] notifyMessageReceptionResponse notifyMessageReception([System.Xml.Serialization.XmlElementAttribute("notifyMessageReception", Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/notification/v2_2" + "/local")] notifyMessageReception notifyMessageReception1); /// <remarks/> [System.Web.Services.WebMethodAttribute()] [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)] [return: System.Xml.Serialization.XmlElementAttribute("notifyMessageDeliveryReceiptResponse", Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/notification/v2_2" + "/local")] notifyMessageDeliveryReceiptResponse notifyMessageDeliveryReceipt([System.Xml.Serialization.XmlElementAttribute("notifyMessageDeliveryReceipt", Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/notification/v2_2" + "/local")] notifyMessageDeliveryReceipt notifyMessageDeliveryReceipt1);}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1")][System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1", IsNullable=false)]public partial class NotifySOAPHeader : System.Web.Services.Protocols.SoapHeader { private string spRevIdField; private string spRevpasswordField; private string spIdField; private string sANField; private string transactionIdField; private string linkIdField; /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string spRevId { get { return this.spRevIdField; } set { this.spRevIdField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string spRevpassword { get { return this.spRevpasswordField; } set { this.spRevpasswordField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string spId { get { return this.spIdField; } set { this.spIdField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string SAN { get { return this.sANField; } set { this.sANField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string transactionId { get { return this.transactionIdField; } set { this.transactionIdField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string linkId { get { return this.linkIdField; } set { this.linkIdField = value; } }}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/notification/v2_2" + "/local")]public partial class notifyMessageDeliveryReceiptResponse {}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/v2_2")]public partial class DeliveryInformation { private string addressField; private DeliveryStatus deliveryStatusField; /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="anyURI")] public string address { get { return this.addressField; } set { this.addressField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public DeliveryStatus deliveryStatus { get { return this.deliveryStatusField; } set { this.deliveryStatusField = value; } }}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")][System.SerializableAttribute()][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/v2_2")]public enum DeliveryStatus { /// <remarks/> DeliveredToNetwork, /// <remarks/> DeliveryUncertain, /// <remarks/> DeliveryImpossible, /// <remarks/> MessageWaiting, /// <remarks/> DeliveredToTerminal, /// <remarks/> DeliveryNotificationNotSupported, /// <remarks/> AuthPriceFailed, /// <remarks/> DrmError,}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/notification/v2_2" + "/local")]public partial class notifyMessageDeliveryReceipt { private string correlatorField; private DeliveryInformation deliveryStatusField; /// <remarks/> public string correlator { get { return this.correlatorField; } set { this.correlatorField = value; } } /// <remarks/> public DeliveryInformation deliveryStatus { get { return this.deliveryStatusField; } set { this.deliveryStatusField = value; } }}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/notification/v2_2" + "/local")]public partial class notifyMessageReceptionResponse {}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/v2_2")]public partial class MessageReference { private string messageIdentifierField; private string messageServiceActivationNumberField; private string senderAddressField; private string subjectField; private MessagePriority priorityField; private string messageField; /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string messageIdentifier { get { return this.messageIdentifierField; } set { this.messageIdentifierField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string messageServiceActivationNumber { get { return this.messageServiceActivationNumberField; } set { this.messageServiceActivationNumberField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="anyURI")] public string senderAddress { get { return this.senderAddressField; } set { this.senderAddressField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string subject { get { return this.subjectField; } set { this.subjectField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public MessagePriority priority { get { return this.priorityField; } set { this.priorityField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string message { get { return this.messageField; } set { this.messageField = value; } }}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")][System.SerializableAttribute()][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/v2_2")]public enum MessagePriority { /// <remarks/> Default, /// <remarks/> Low, /// <remarks/> Normal, /// <remarks/> High,}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "4.0.30319.1")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/notification/v2_2" + "/local")]public partial class notifyMessageReception { private string registrationIdentifierField; private MessageReference messageField; /// <remarks/> public string registrationIdentifier { get { return this.registrationIdentifierField; } set { this.registrationIdentifierField = value; } } /// <remarks/> public MessageReference message { get { return this.messageField; } set { this.messageField = value; } }}
wsdl.exe /si ctcc_common_faults_2_0.wsdl ctcc_common_types_2_1.xsd ctcc_mm_send_interface_2_2.wsdl ctcc_mm_send_service_2_2.wsdl ctcc_mm_types_2_2.xsdwsdl.exe /si ctcc_common_faults_2_0.wsdl ctcc_common_types_2_1.xsd ctcc_mm_send_interface_2_2.wsdl ctcc_mm_send_service_2_2.wsdl ctcc_mm_types_2_2.xsd
//------------------------------------------------------------------------------// <auto-generated>// 此代码由工具生成。// 运行时版本:2.0.50727.3625//// 对此文件的更改可能会导致不正确的行为,并且如果// 重新生成代码,这些更改将会丢失。// </auto-generated>//------------------------------------------------------------------------------using System;using System.ComponentModel;using System.Diagnostics;using System.Web.Services;using System.Web.Services.Protocols;using System.Xml.Serialization;// // 此源代码由 wsdl 自动生成, Version=2.0.50727.3038。// /// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")][System.Web.Services.WebServiceBindingAttribute(Name="SendMessageBinding", Namespace="http://www.chinatelecom.com.cn/wsdl/ctcc/multimedia_messaging/send/v2_2/service")]public interface ISendMessageBinding { RequestSOAPHeader RequestSOAPHeaderValue { get; set; } /// <remarks/> [System.Web.Services.Protocols.SoapHeaderAttribute("RequestSOAPHeaderValue")] [System.Web.Services.WebMethodAttribute()] [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)] [return: System.Xml.Serialization.XmlElementAttribute("sendMessageResponse", Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/send/v2_2/local")] sendMessageResponse sendMessage([System.Xml.Serialization.XmlElementAttribute("sendMessage", Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/send/v2_2/local")] sendMessage sendMessage1); /// <remarks/> [System.Web.Services.Protocols.SoapHeaderAttribute("RequestSOAPHeaderValue")] [System.Web.Services.WebMethodAttribute()] [System.Web.Services.Protocols.SoapDocumentMethodAttribute("", Use=System.Web.Services.Description.SoapBindingUse.Literal, ParameterStyle=System.Web.Services.Protocols.SoapParameterStyle.Bare)] [return: System.Xml.Serialization.XmlArrayAttribute("getMessageDeliveryStatusResponse", Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/send/v2_2/local")] [return: System.Xml.Serialization.XmlArrayItemAttribute("result", IsNullable=false)] DeliveryInformation[] getMessageDeliveryStatus([System.Xml.Serialization.XmlElementAttribute("getMessageDeliveryStatus", Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/send/v2_2/local")] getMessageDeliveryStatus getMessageDeliveryStatus1);}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1")][System.Xml.Serialization.XmlRootAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1", IsNullable=false)]public partial class RequestSOAPHeader : System.Web.Services.Protocols.SoapHeader { private string spIdField; private string spPasswordField; private string timeStampField; private string productIdField; private string sANField; private string transactionIdField; private EndReason transEndField; private bool transEndFieldSpecified; private string linkIdField; private string oaField; private string faField; private bool multicastMessagingField; private bool multicastMessagingFieldSpecified; /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string spId { get { return this.spIdField; } set { this.spIdField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string spPassword { get { return this.spPasswordField; } set { this.spPasswordField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string timeStamp { get { return this.timeStampField; } set { this.timeStampField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string productId { get { return this.productIdField; } set { this.productIdField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string SAN { get { return this.sANField; } set { this.sANField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string transactionId { get { return this.transactionIdField; } set { this.transactionIdField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public EndReason transEnd { get { return this.transEndField; } set { this.transEndField = value; } } /// <remarks/> [System.Xml.Serialization.XmlIgnoreAttribute()] public bool transEndSpecified { get { return this.transEndFieldSpecified; } set { this.transEndFieldSpecified = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string linkId { get { return this.linkIdField; } set { this.linkIdField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="anyURI")] public string OA { get { return this.oaField; } set { this.oaField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="anyURI")] public string FA { get { return this.faField; } set { this.faField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public bool multicastMessaging { get { return this.multicastMessagingField; } set { this.multicastMessagingField = value; } } /// <remarks/> [System.Xml.Serialization.XmlIgnoreAttribute()] public bool multicastMessagingSpecified { get { return this.multicastMessagingFieldSpecified; } set { this.multicastMessagingFieldSpecified = value; } }}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")][System.SerializableAttribute()][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1")]public enum EndReason { /// <remarks/> [System.Xml.Serialization.XmlEnumAttribute("0")] Item0, /// <remarks/> [System.Xml.Serialization.XmlEnumAttribute("-1")] Item1, /// <remarks/> [System.Xml.Serialization.XmlEnumAttribute("1")] Item11, /// <remarks/> [System.Xml.Serialization.XmlEnumAttribute("2")] Item2,}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/v2_2")]public partial class DeliveryInformation { private string addressField; private DeliveryStatus deliveryStatusField; /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="anyURI")] public string address { get { return this.addressField; } set { this.addressField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public DeliveryStatus deliveryStatus { get { return this.deliveryStatusField; } set { this.deliveryStatusField = value; } }}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")][System.SerializableAttribute()][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/v2_2")]public enum DeliveryStatus { /// <remarks/> DeliveredToNetwork, /// <remarks/> DeliveryUncertain, /// <remarks/> DeliveryImpossible, /// <remarks/> MessageWaiting, /// <remarks/> DeliveredToTerminal, /// <remarks/> DeliveryNotificationNotSupported, /// <remarks/> AuthPriceFailed, /// <remarks/> DrmError,}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/send/v2_2/local")]public partial class getMessageDeliveryStatus { private string requestIdentifierField; /// <remarks/> public string requestIdentifier { get { return this.requestIdentifierField; } set { this.requestIdentifierField = value; } }}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/send/v2_2/local")]public partial class sendMessageResponse { private string resultField; /// <remarks/> public string result { get { return this.resultField; } set { this.resultField = value; } }}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1")]public partial class SimpleReference { private string endpointField; private string interfaceNameField; private string correlatorField; /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified, DataType="anyURI")] public string endpoint { get { return this.endpointField; } set { this.endpointField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string interfaceName { get { return this.interfaceNameField; } set { this.interfaceNameField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string correlator { get { return this.correlatorField; } set { this.correlatorField = value; } }}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/common/v2_1")]public partial class ChargingInformation { private string descriptionField; private string currencyField; private decimal amountField; private bool amountFieldSpecified; private string codeField; /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string description { get { return this.descriptionField; } set { this.descriptionField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string currency { get { return this.currencyField; } set { this.currencyField = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public decimal amount { get { return this.amountField; } set { this.amountField = value; } } /// <remarks/> [System.Xml.Serialization.XmlIgnoreAttribute()] public bool amountSpecified { get { return this.amountFieldSpecified; } set { this.amountFieldSpecified = value; } } /// <remarks/> [System.Xml.Serialization.XmlElementAttribute(Form=System.Xml.Schema.XmlSchemaForm.Unqualified)] public string code { get { return this.codeField; } set { this.codeField = value; } }}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")][System.SerializableAttribute()][System.Diagnostics.DebuggerStepThroughAttribute()][System.ComponentModel.DesignerCategoryAttribute("code")][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/send/v2_2/local")]public partial class sendMessage { private string[] addressesField; private string senderAddressField; private string subjectField; private MessagePriority priorityField; private bool priorityFieldSpecified; private ChargingInformation chargingField; private SimpleReference receiptRequestField; /// <remarks/> [System.Xml.Serialization.XmlElementAttribute("addresses", DataType="anyURI")] public string[] addresses { get { return this.addressesField; } set { this.addressesField = value; } } /// <remarks/> public string senderAddress { get { return this.senderAddressField; } set { this.senderAddressField = value; } } /// <remarks/> public string subject { get { return this.subjectField; } set { this.subjectField = value; } } /// <remarks/> public MessagePriority priority { get { return this.priorityField; } set { this.priorityField = value; } } /// <remarks/> [System.Xml.Serialization.XmlIgnoreAttribute()] public bool prioritySpecified { get { return this.priorityFieldSpecified; } set { this.priorityFieldSpecified = value; } } /// <remarks/> public ChargingInformation charging { get { return this.chargingField; } set { this.chargingField = value; } } /// <remarks/> public SimpleReference receiptRequest { get { return this.receiptRequestField; } set { this.receiptRequestField = value; } }}/// <remarks/>[System.CodeDom.Compiler.GeneratedCodeAttribute("wsdl", "2.0.50727.3038")][System.SerializableAttribute()][System.Xml.Serialization.XmlTypeAttribute(Namespace="http://www.chinatelecom.com.cn/schema/ctcc/multimedia_messaging/v2_2")]public enum MessagePriority { /// <remarks/> Default, /// <remarks/> Low, /// <remarks/> Normal, /// <remarks/> High,}
代码中有一个接口类,并给出了接口函数声明.
此功能的优点是将实现代码和协定代码(如接口所定义的那样)分开。 如果更改 wsdl,然后重新生成接口,则不会丢失任何实现代码。 若要遵循建议的设计指南,则不应将任何代码放置在更改 wsdl 协定的实现中。 同样,不应使用影响运行时行为的代码来更改接口。 协定和实现的详细信息应该分开。
2) 在VS IDE中新建一个web service工程,加入新生成的**Interface.cs文件.
将自动生成的Service类改为从加入的Interface接口类派生,并实现所有的接口函数.(注意名空间一致)
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;/// <summary>///WebService 的摘要说明/// </summary>[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 // [System.Web.Script.Services.ScriptService]public class WebService : IMessageNotificationBinding{ private static log4net.ILog _log = log4net.LogManager.GetLogger("WebService"); public WebService() { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public string notifyManagementInfo(string xml) { _log.Info("xml=" + xml + ",Now=" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss")); return "Hello World"; } public NotifySOAPHeader NotifySOAPHeaderValue { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } public notifyMessageReceptionResponse notifyMessageReception(notifyMessageReception notifyMessageReception1) { throw new NotImplementedException(); } public notifyMessageDeliveryReceiptResponse notifyMessageDeliveryReceipt(notifyMessageDeliveryReceipt notifyMessageDeliveryReceipt1) { throw new NotImplementedException(); }}
using System;using System.Collections.Generic;using System.Linq;using System.Web;using System.Web.Services;/// <summary>///WebService2 的摘要说明/// </summary>[WebService(Namespace = "http://tempuri.org/")][WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]//若要允许使用 ASP.NET AJAX 从脚本中调用此 Web 服务,请取消对下行的注释。 // [System.Web.Script.Services.ScriptService]public class WebService2 : ISendMessageBinding{ public WebService2() { //如果使用设计的组件,请取消注释以下行 //InitializeComponent(); } [WebMethod] public string HelloWorld() { return "Hello World"; } public RequestSOAPHeader RequestSOAPHeaderValue { get { throw new NotImplementedException(); } set { throw new NotImplementedException(); } } public sendMessageResponse sendMessage(sendMessage sendMessage1) { throw new NotImplementedException(); } public DeliveryInformation[] getMessageDeliveryStatus(getMessageDeliveryStatus getMessageDeliveryStatus1) { throw new NotImplementedException(); }}
- 由WSDL文件生成WEB service server端C#程序
- 由WSDL文件生成WEB service server端C#程序
- 由WSDL文件生成WEB service server端C#程序
- 由WSDL文件生成WEB service server端C#程序
- 由WSDL文件生成WEB service server端C#程序
- 由WSDL文件生成C#的WEB service服务端
- VS2010 根据WSDL文件(java Web Service)生成.cs文件
- WSDL自动生成Web Service java 客户端
- wsdl自动生成web service的client和server,Java类详解,以及webservice访问
- C# Web Service 根据WSDL文件和地址添加web引用
- Web Service 之 WSDL文件讲解
- 用Axis2开发web service #1 - 从生成WSDL文件开始
- gSoap使用入门(1)----由wsdl文件生成头文件
- gSoap使用入门(1)----由wsdl文件生成头文件
- gSoap使用入门(1)----由wsdl文件生成头文件
- 通过wsdl文件生成web服务
- 使用gsoap由.h文件生成wsdl相关问题
- webservice学习 由服务接口代码生成wsdl文件
- 与PI一起参会,有礼更精彩!广州国际LED展,我们来了
- Oracle SQL性能优化
- C运行时库、C++ Standard Library
- Android APK反编译详解
- java实现邮件的发送分享
- 由WSDL文件生成WEB service server端C#程序
- 杭电 1862 excel
- 调用源--一般的运行中断级--运行环境
- ios 基础学习之零基础代码控制实现3
- WPF for Chart FX中Win/Loss图表创建方法
- 10个最具智慧毕业典礼演讲
- 题目1003:A+B
- eclipse中的sca构件(service component architecture)开发过程(一)
- 走进cassandra 之一 CAP和分布式