XML反序列化:不同的xml架构映射到同一个C#类
发布时间:2020-12-16 22:56:16 所属栏目:百科 来源:网络整理
导读:我的程序的一个工作是从xml文件中读取客户列表并将它们反序列化为C#类,如下所示: ?xml version="1.0" encoding="utf-8"?customers customer namejohn/name id1/id /customer customer namemike/name id2/id /customer/customers C#类: [XmlRoot("customers
我的程序的一个工作是从xml文件中读取客户列表并将它们反序列化为C#类,如下所示:
<?xml version="1.0" encoding="utf-8"?> <customers> <customer> <name>john</name> <id>1</id> </customer> <customer> <name>mike</name> <id>2</id> </customer> </customers> C#类: [XmlRoot("customers")] public class CustomerList { [XmlElement("customer")] public Customer[] Customers { get; set; } } public class Customer { [XmlElement("name")] public String Name {get; set;} [XmlElement("id")] public String Id {get; set;} } 但最近客户想要从< id>更改标签名称到< code>如下所示: <?xml version="1.0" encoding="utf-8"?> <customers> <customer> <name>john</name> <code>1</code> </customer> <customer> <name>mike</name> <code>2</code> </customer> </customers> “code”的值与之前的标记“id”具有相同的含义.他们希望在转换过程中修改程序,以便在一段时间内识别这两个标记. 有没有简单的方法来实现这一目标?谢谢. 解决方法
为什么不使用一个私有字段并使用两个不同的getter / setter?只要两个标记都没有出现在XML中,这就行了.
[XmlRoot("customers")] public class CustomerList { [XmlElement("customer")] public Customer[] Customers { get; set; } } public class Customer { private String _id; [XmlElement("name")] public String Name {get; set;} [XmlElement("id")] public String Id {get{return _id;} set{_id = value;}} [XmlElement("code")] public String Code {get{return _id;} set{_id = value;}} } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |