框架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>
编辑:上传了原始文件内容,问题就更清楚了。如果你把最后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; }
}