框架2.0和框架4.5中的XML序列化

本文关键字:框架 中的 XML 序列化 | 更新日期: 2023-09-27 18:08:40

最近我已经把我的项目从框架2.0转移到框架4.5。我有一个xml文件,它将被反序列化并执行一些操作。xml去初始化可以在框架2.0中正常工作。但是相同的xml文件,不改变任何代码任何xml文件,它不反序列化它给我的错误是"根级数据无效。31行,第27位。"我为此浪费了30分钟。这是我的XML文件

<SpreadResultData>
<SpreadToList>
<Spread>
<GroupName>A</GroupName>
<CellPos>B</CellPos>
<CellValue>0~</CellValue>
<Color>Green</Color>
<CellLinePos>3</CellLinePos>
<IsSetColor>true</IsSetColor>
<IsClear>false</IsClear>
</Spread>
<Spread>
<GroupName>B</GroupName>
<CellPos>C</CellPos>
<CellValue>0~</CellValue>
<Color>Yellow</Color>
<CellLinePos>3</CellLinePos>
<IsSetColor>true</IsSetColor>
<IsClear>false</IsClear>
</Spread>
<Spread>
<GroupName>C</GroupName>
<CellPos>D</CellPos>
<CellValue>0~</CellValue>
<Color>Red</Color>
<CellLinePos>3</CellLinePos>
<IsSetColor>true</IsSetColor>
<IsClear>false</IsClear>
</Spread>
</SpreadToList>
</SpreadResultData>

框架2.0和框架4.5中的XML序列化

编辑:上传了原始文件内容,问题就更清楚了。如果你把最后10个字节看成十六进制,我们得到:

6C-74-44-61-74-61-3E-EF-BB-BF

:

l  t  D  a  t  a  >

,其中最后3个字节为零宽度的不间断空格。

修复文件末尾的坏数据,你应该被排序。它应该只是结束:

6C-74-44-61-74-61-3E

不能再生产;这对我来说很好瞄准。net 4.5,使用xml文件按照你的帖子;你确定档案之后就没有别的了吗?你能把精确的文件上传到某个地方吗?有可能有一些内容是不可见的文本转储在这里的SO:

static class Program
{
    static void Main()
    {
        var ser = new XmlSerializer(typeof(SpreadResultData));
        SpreadResultData data;
        using(var file = File.OpenRead("my.xml"))
        {
            data = (SpreadResultData)ser.Deserialize(file);
        }
    }
}
public class SpreadResultData
{
    public List<Spread> SpreadToList {get;set;}
}
public class Spread
{
    public string GroupName { get; set; }
    public string CellPos { get; set; }
    public string CellValue { get; set; }
    public string Color { get; set; }
    public int CellLinePos { get; set; }
    public bool IsSetColor { get; set; }
    public bool IsClear { get; set; }
}