千家信息网

Web Services使用多态的方法有哪些

发表于:2025-01-16 作者:千家信息网编辑
千家信息网最后更新 2025年01月16日,小编给大家分享一下Web Services使用多态的方法有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!在Web Services方法中,往往使用的都是一个具体类型的参数,这个参
千家信息网最后更新 2025年01月16日Web Services使用多态的方法有哪些

小编给大家分享一下Web Services使用多态的方法有哪些,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!

在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的时候有生成可序列化的代码时能够使用,要在其他的客户端使用还是得费一番周折。

看完了这篇文章,相信你对"Web Services使用多态的方法有哪些"有了一定的了解,如果想了解更多相关知识,欢迎关注行业资讯频道,感谢各位的阅读!

方法 多态 对象 序列 参数 类型 生成 代码 客户 客户端 篇文章 同时 周折 完了 就是 属性 数据 文件 时候 更多 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 戴尔服务器生产日期查询 机架式服务器更换内存条 魂斗罗连接服务器异常 钛马信息网络技术有限公司官司 计算机网络技术专升本要考啥 软件开发用户对环境的要求 欢喜岭学校数据库 腐蚀怎么看服务器名 服务器如何加装摄像头 绿盾系统服务器 我的世界服务器时装工坊资源库 i站服务器 浙江大学考研网络安全专业分数线 济南网信网络技术 购买一个服务器能搭建两个网站吗 街道网络安全总结报告 编辑数据库mdf文件 kms服务器地址 中小学网络安全知识竞赛题库 虹口区网络软件开发定制价格 顺义区综合网络技术服务包括什么 魂斗罗连接服务器异常 西南财大数据库能写什么论文 广东企业云空间解决方案云服务器 软件开发用户对环境的要求 刷机数据库 金蝶软件公司软件开发的工资 软件开发与信息技术哪个更好 数据库维护员部门简介 手机网络安全预警仪
0