相同的属性但不同的类名 - XML序列化

时间:2015-02-20 09:03:07

标签: c# xml class xml-serialization xmlserializer

是否可以使用公共类来使用此XML?两者都是来自不同路线的API响应

<Employee>
 <FirstName>...</FirstName>
 <LastName>...</LastName>
 <Age>...</Age>
 <DOB>...</DOB>
</Employee>

<Customer>
 <FirstName>...</FirstName>
 <LastName>...</LastName>
 <Age>...</Age>
 <DOB>...</DOB>
</Customer>

我正在寻找像

这样的东西
[XMLAlias="Employee","Customer"]
public class User
{
 public string FirstName { get; set; }
 public string LastName{ get; set; }
 public int Age{ get; set; }
 public DateTime DOB{ get; set; }
}

或至少

[XMLAlias="Employee"]
public class Customer
{
 public string FirstName { get; set; }
 public string LastName{ get; set; }
 public int Age{ get; set; }
 public DateTime DOB{ get; set; }
}

1 个答案:

答案 0 :(得分:2)

我建议使用单独的Employee和Customer类,这些类派生自具有公共属性的基本User类。

将来,当其中一个xml /类具有其他特定字段时,您可以遇到这种情况。所以:

public class User
{
 public string FirstName { get; set; }
 public string LastName{ get; set; }
 public int Age{ get; set; }
 public DateTime DOB{ get; set; }
}

public class Employee : User
{
}

public class Customer : User
{
}