在Web Services方法中,往往使用的都是一个具体类型的参数,这个参数一般就是一个数据对象。ASP.NET Web Services通过声明XmlIncludeAttribute可以实现Web Services方法中运用多态。
XmlIncludeAttribute允许XmlSerializer在序列化火反序列化对象时识别类型。当应用 XmlIncludeAttribute时,需指定派生类的Type。XmlSerializer序列化同时包含基类和派生类的对象之后,它就可以识别两 种对象类型。
首先定义基类Vehicle和派生类Car:
1: public abstract class Vehicle
2: {
3: public string LicenseNumber{ get;set;}
4: public DateTime MakeTime { get; set; }
5: }
6:
7: public class Car : Vehicle
8: {
9: public int DoorNum { get; set; }
10: }
11:
在Web Services的AddVehicle方法可以查看传过来的参数:
Web Services可以支持多态,不过仅仅限制在可以直接引用Web Services的时候有生成可序列化的代码时能够使用,要在其他的客户端使用还是得费一番周折。