首页 > 代码库 > 使用XmlInclude解决WebService调用时无法识别子类的异常

使用XmlInclude解决WebService调用时无法识别子类的异常

一、定义抽象类及子类,WebMethod实际返回子类参数

  //使用XmlInclude解决WebService调用时无法识别子类的异常    [System.Xml.Serialization.XmlInclude(typeof(WageEmploeyee)), System.Xml.Serialization.XmlInclude(typeof(Boss))]    public abstract class EmployeeData    {        //Required by XmlSerializer        public EmployeeData() { }        public string Name { get; set; }        public string SSN { get; set; }        public abstract double ComputerPay();    }    public class WageEmploeyee : EmployeeData    {        public double Wage { get; set; }        public double Hours { get; set; }        public override double ComputerPay()        {            return this.Wage * this.Hours;        }    }    public class Boss : EmployeeData    {        public double Salary { get; set; }        public override double ComputerPay()        {            return this.Salary;        }    }

 

2、WebMethod方法(根据传入的参数实例化不同的子类)

  public class WebService1 : System.Web.Services.WebService    {        [WebMethod]        public EmployeeData GetEmployee(int id)        {            if (id == 1)            {                return new Boss();            }            return new WageEmploeyee();        }    }

 

使用XmlInclude解决WebService调用时无法识别子类的异常