c# - 序列化/反序列化不同的属性名称?

标签 c# xml serialization deserialization

我有一个旧系统,它在请求信息调用中返回名称如下的 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 属性使它们成为同一个对象?

编辑

有没有办法让单个对象在反序列化时接受一个标签名称,然后在序列化时输出不同的名称?

(反序列化为)myObj.MyTag(序列化为)< MyTag/>

最佳答案

请务必注意您实际使用的是哪个序列化程序。每个不同的序列化程序的工作方式都不同。

我假设您正在使用 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/

相关文章:

java - ListView 每个项目都有不同的布局

c# - 从 void 到 XmlDocument 的隐式转换

android - Parcelable 写序列化对象遇到IOException [QUICKBLOX DIALOG]

python - 无法使用 python3 反序列化关键数据

javascript - 如何使用asp.net core在action方法中接收通过ajax请求发送的文件和整数

c# - 将固定大小的缓冲区(字节数组)转换为字符串

c# - Boolean cast Specified cast is not valid 错误

c# - 从 SQL 查询 c# 创建树/XML 结构

android - 用android读取xml

c++ - 数据封装(网络编程)