请教一下,我想把 FarPoint.Web.Spread.CheckBoxCellType Serialize一下,然后保存到硬盘上,在需要时再Deserialize取出使用。
Serialize的代码如下:
using (System.Xml.XmlTextWriter w = new System.Xml.XmlTextWriter(XmlSavePath(Request["configid"]), Encoding.UTF8))
{
FarPoint.Web.Spread.CheckBoxCellType chkbx = new FarPoint.Web.Spread.CheckBoxCellType();
chkbx.Text = this.tbxName.Text;
chkbx.TextAlign = (TextAlign)System.Enum.Parse(typeof(TextAlign), this.alignddl.SelectedValue, true);
chkbx.Serialize(w);
}
OK,没有问题。
Deserialize的代码如下:
using (System.IO.Stream
stream = System.IO.File.Open(loadpath, System.IO.FileMode.Open))
{
FarPoint.Web.Spread.CheckBoxCellType chkbx = new FarPoint.Web.Spread.CheckBoxCellType();
//System.Xml.XmlTextReader r=new XmlTextReader (
XmlDocument doc = new XmlDocument();
XmlTextReader xreader = new XmlTextReader(stream);
xreader.WhitespaceHandling = WhitespaceHandling.None;
doc.Load(stream);
// doc.Load(xreader);
XmlNodeReader reader = new XmlNodeReader(doc);
chkbx.Deserialize(reader);
//加载
this.tbxName.Text = chkbx.Text;
this.alignddl.SelectedValue = chkbx.TextAlign.ToString();
}
加载时发现问题,
错误代码如下:
根级别上的数据无效。 行 1,位置 1。
说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。
异常详细信息: System.Xml.XmlException: 根级别上的数据无效。 行 1,位置 1。
源错误:
行 37: XmlTextReader xreader = new XmlTextReader(stream);
行 38: xreader.WhitespaceHandling = WhitespaceHandling.None;
行 39: xreader.MoveToContent();
行 40:
行 41: // doc.Load(stream);
请教一下,为什么反序列化时会报错?是否思路上存在问题? |
|