【发布时间】:2010-09-17 10:42:06
【问题描述】:
我的课看起来像
public class MyClass
{
public string EmployerName;
public string EmployerSurname;
public string EmploeeName;
public string EmploeeSurname;
}
我已将上面的代码重构为:
public class MyClass
{
public MyClass()
{
Employer = new PersonInfo();
Emploee = new PersonInfo();
}
public class PersonInfo
{
public string Name;
public string Surname;
}
public PersonInfo Emploee;
public PersonInfo Employer;
[Obsolete]
public string EmploeeName
{
get
{
return Emploee.Name;
}
set
{
Emploee.Name = value;
}
}
[Obsolete]
public string EmploeeSurname
{
get
{
return Emploee.Surname;
}
set
{
Emploee.Surname= value;
}
}
[Obsolete]
public string EmployerName
{
get
{
return Employer.Name;
}
set
{
Employer.Name = value;
}
}
[Obsolete]
public string EmployerSurname
{
get
{
return Employer.Surname;
}
set
{
Employer.Surname = value;
}
}
问题是,在反序列化从旧类版本序列化的 XML 时,我希望新属性能够工作,并且内部对象的字段会被填充,但他们没有。
除了实现 IXmlSerializable 之外,我还有什么想法可以修改新类以同时支持新旧版本的 XML?或者也许 IXmlSerializable 是唯一的方法?
【问题讨论】:
标签: c# xml serialization