由WSDL文件生成WEB service server端C#程序

由WSDL文件生成WEB service server端C#程序

一般一个已经实现功能的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文件;

 

wsdl.exe /si ctcc_common_faults_2_0.wsdl ctcc_common_types_2_1.xsd ctcc_mm_notification_interface_2_2.wsdl ctcc_mm_notification_service_2_2.wsdl ctcc_mm_types_2_2.xsd

(生成的cs 保存地址 D:\Program Files (x86)\Microsoft Visual Studio 11.0)

复制代码
// ------------------------------------------------------------------------------
//  <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.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();
    }
复制代码

} 



原文地址 :http://www.cnblogs.com/wenanry/archive/2012/01/18/2325281.html


评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值