C# XML 序列化/反序列化

标签 c# xml serialization

<分区>

我正在看 XML Serialization 并且已经这样序列化了:

public static string Serialize<T>(T data)
{
    XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
    //Overridden to use UTF8 for compatability with Perl XML::DOM
    StringWriterUTF8 sw = new StringWriterUTF8();
    xmlSerializer.Serialize(sw, data);
    return sw.ToString();
}

我这样使用它:

string serializedData = Serializer.Serialize<List<InputData>>(rawDataCollection);

产生:

<ArrayOfInputData xmlns:xsi="http://www.w3.org/2001/XMLSchema-                instance"                 xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <InputData>
        <dose>100mg/kg</dose> 
        <compound>AZ13279746-001</compound> 
    </InputData>
</ArrayOfInputData>

出于某种原因,我无法包含 xml 版本 1.0 编码 UTF8 的 header 。

现在,当我尝试反序列化时

public static object DeSerialize<T>(string data)
{
    StringReader rdr = new StringReader(data);
    XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));
    T i;
    i = (T)xmlSerializer.Deserialize(rdr);

    return i;
}

我收到一条错误消息,指出 2,2 处的无效 xml。知道我做错了什么吗?

谢谢

最佳答案

现在已经修复了:

public static object DeSerialize<T>(string data)
    {

       StringReader rdr = new StringReader(data);

       XmlSerializer xmlSerializer = new XmlSerializer(typeof(T));


       var result = (T)xmlSerializer.Deserialize(rdr);


       return result; 



    }

var fl = (List<InputData>)Serializer.DeSerialize<List<InputData>>(serializedData);

关于C# XML 序列化/反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5661227/

相关文章:

php - 处理序列化数据与添加更多字段 - php - mysql

c# - 使用 Moq 模拟具有 'new' 成员的接口(interface)

c# - 映射对象时如何将自定义逻辑应用于AutoMapper?

c# - Google Analytics API fromdate,todate。如何从开始跟踪时开始?

javascript - 在 HTML 中嵌入 XML

java - 自定义 Jackson 映射器来处理单个字段的映射?

c# - 为什么 sqlbulkcopy 在 iis 下运行的 asp.net 网站中有这种奇怪的行为?

javascript - 简单的AJAX检索XML文件中的数据,在 ".responseXML"左右出错

android - 底部导航栏随键盘向上移动

c# - 序列化 Lucene.net 文档