我有一个旧系统,它在请求信息调用中返回名称如下的 xml:
postalCodeField, firstNameField...
然后同一个系统有一个修改调用,它采用如下所示的 xml:
PostalCode, fistName, lastName....
有没有办法构建一个对象来反序列化请求,同时序列化具有不同名称的 xml 输出?
具体来说:
public class RequestInfo
{
public string firstNameField{get;set;}
public string lastNameField{get;set;}
}
public class ModifyInfo
{
public string firstName{get;set;}
public string lastName{get;set;}
public ModifyInfo(){}
public ModifyInfo(RequestInfo ri)
{
firstName = ri.firstNameField
.....
}
}
有没有办法通过 say 属性使它们成为同一个对象?
编辑
有没有办法让单个对象在反序列化时接受一个标签名称,然后在序列化时输出不同的名称?
最佳答案
请务必注意您实际使用的是哪个序列化程序。每个不同的序列化程序的工作方式都不同。
我假设您正在使用 System.Xml.Serialization.XmlSerializer
。如果是这种情况,那么您希望使用 System.Xml.Serialization
命名空间中的属性,例如 XmlElementAttribute,如下所示:
public class Person
{
[System.Xml.Serialization.XmlElement(ElementName = "firstNameField")]
public string FirstName { get; set; }
}
这假设该字段是一个 XML 元素。如果是属性,请使用 XmlAttribute
属性。
关于c# - 序列化/反序列化不同的属性名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19142691/