• 企业400电话
  • 网络优化推广
  • AI电话机器人
  • 呼叫中心
  • 全 部 栏 目

    网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    Web Services使用多态的方法
    POST TIME:2021-10-18 02:25

    在Web Services方法中,往往使用的都是一个具体类型的参数,这个参数一般就是一个数据对象。ASP.NET Web Services通过声明XmlIncludeAttribute可以实现Web Services方法中运用多态。

    XmlIncludeAttribute允许XmlSerializer在序列化火反序列化对象时识别类型。当应用XmlIncludeAttribute时,需指定派生类的Type。XmlSerializer序列化同时包含基类和派生类的对象之后,它就可以识别两种对象类型。

    首先定义基类Vehicle和派生类Car:

    public abstract class Vehicle 
     { 
       public string LicenseNumber{get;set;} 
      public DateTime MakeTime { get; set; } 
     } 
     public class Car : Vehicle 
     { 
      public int DoorNum { get; set; } 
     } 
    

    定义AddVehicle的Web Method,声明XmlInclude需要添加对命名空间System.Xml.Serialization的引用:

    [WebMethod] 
    [XmlInclude(typeof(Car))] 
    public void AddVehicle(Vehicle vehicle) 
    { 
     }  
    

    查看生成的wsdl,wsdl利用extension的base属性来描述Car继承Vechicle。

    查看引用Web Services生成的Reference.cs文件,Vehicle类会有XmlIncludeAttribute的声明:

    [System.Xml.Serialization.XmlIncludeAttribute(typeof(Car))] 
    [System.CodeDom.Compiler.GeneratedCodeAttribute("System.Xml", "4.0.30319.1")] 
    [System.SerializableAttribute()] 
    [System.Diagnostics.DebuggerStepThroughAttribute()] 
    [System.ComponentModel.DesignerCategoryAttribute("code")] 
    [System.Xml.Serialization.XmlTypeAttribute(Namespace="http://tempuri.org/")] 
    public abstract partial class Vehicle : object 
    

    客户端测试代码:

    static void Main(string[] args) 
    { 
    localhost.WebService1SoapClient c = new localhost.WebService1SoapClient(); 
     localhost.Car car = new localhost.Car() {                         
    LicenseNumber="0001",                  
    MakeTime=DateTime.Now, 
     DoorNum=2 
     c.AddVehicle(car); 
     } 
     
    

    在Web Services的AddVehicle方法可以查看传过来的参数:

    Web Services可以支持多态,不过仅仅限制在可以直接引用Web Services的时候有生成可序列化的代码时能够使用,要在其他的客户端使用还是得费一番周折。

    以上就是本文的全部内容,希望对大家的学习有所帮助。

    您可能感兴趣的文章:
    • asp.net下实现支持文件分块多点异步上传的 Web Services
    • asp.net Web Services上传和下载文件(完整代码)
    • JQuery调用WebServices的方法和4个实例
    • VS2008中使用JavaScript调用WebServices
    • Powershell中请求WebServices并以JSON格式输出结果
    上一篇:web.config中配置数据库连接的方式
    下一篇:asp.net中ViewState的用法详解
  • 相关文章
  • 

    关于我们 | 付款方式 | 荣誉资质 | 业务提交 | 代理合作


    © 2016-2020 巨人网络通讯

    时间:9:00-21:00 (节假日不休)

    地址:江苏信息产业基地11号楼四层

    《增值电信业务经营许可证》 苏B2-20120278

    X

    截屏,微信识别二维码

    微信号:veteran88

    (点击微信号复制,添加好友)

     打开微信