下面的代码在反序列化时报错,不知道为什么? [Serializable]
public class myClass
{
public string m_StringTest; protected string m_strName;
protected string m_strNameEn;
protected int m_iGender; public string Name
{
get
{
return m_strName;
}
set
{
m_strName = value;
}
}
public myClass()
{
m_StringTest = "";
m_strName = "";
m_strNameEn = "";
m_iGender = 0;
}
}
---------------------------------------------------- System.Xml.Serialization.XmlSerializer formatter = new System.Xml.Serialization.XmlSerializer(typeof(myClass)); myClass objClass = new myClass();
objClass.Name = "Test";
objClass.m_StringTest = "Test";
System.IO.MemoryStream objStream = new System.IO.MemoryStream(); formatter.Serialize(objStream,objClass);
Console.WriteLine("序列化结果:"); objStream.Position = 0;
System.Xml.XmlTextReader xr = new System.Xml.XmlTextReader(objStream);
System.Xml.XmlDocument objXml = new System.Xml.XmlDocument();
objXml.Load(xr); Console.WriteLine(objXml.OuterXml);
Console.WriteLine("反序列化结果:"); System.Xml.Serialization.XmlSerializer mySerializer = new System.Xml.Serialization.XmlSerializer(typeof(myClass)); myClass objNewClass = (myClass)mySerializer.Deserialize(xr);
Console.WriteLine(objNewClass.m_StringTest);
public class myClass
{
public string m_StringTest; protected string m_strName;
protected string m_strNameEn;
protected int m_iGender; public string Name
{
get
{
return m_strName;
}
set
{
m_strName = value;
}
}
public myClass()
{
m_StringTest = "";
m_strName = "";
m_strNameEn = "";
m_iGender = 0;
}
}
---------------------------------------------------- System.Xml.Serialization.XmlSerializer formatter = new System.Xml.Serialization.XmlSerializer(typeof(myClass)); myClass objClass = new myClass();
objClass.Name = "Test";
objClass.m_StringTest = "Test";
System.IO.MemoryStream objStream = new System.IO.MemoryStream(); formatter.Serialize(objStream,objClass);
Console.WriteLine("序列化结果:"); objStream.Position = 0;
System.Xml.XmlTextReader xr = new System.Xml.XmlTextReader(objStream);
System.Xml.XmlDocument objXml = new System.Xml.XmlDocument();
objXml.Load(xr); Console.WriteLine(objXml.OuterXml);
Console.WriteLine("反序列化结果:"); System.Xml.Serialization.XmlSerializer mySerializer = new System.Xml.Serialization.XmlSerializer(typeof(myClass)); myClass objNewClass = (myClass)mySerializer.Deserialize(xr);
Console.WriteLine(objNewClass.m_StringTest);
解决方案 »
- C# WinForm: Cursor 如 何 使 用 嵌 入 的 彩 色 光 标
- FTP问题
- 很麻烦的问题,没思路。请教。请教。请教。请教。请教。请教。请教。请教。请教。
- ======================【深拷贝】 嵌套类的深拷贝问题==================================
- *****求算法思路********
- C#问题
- 最小化按扭事件的捕获?
- 如果取得屏幕的一段录象啊?我现在还没有一点思路。
- 菜鸟问题:Gridview绑定数据后,后面有修改linkbutton,怎么传数据的ID啊
- 求确认取消对话框使用示例,在线等待,谢谢
- 判断重复的问题, 我想了n久?求答!
- 关于调用IE打印的一个问题,请教各位。
Console.WriteLine(objNewClass.m_StringTest);
objClass.Name = "Test";
objClass.m_StringTest = "Test";
System.IO.MemoryStream objStream = new System.IO.MemoryStream();formatter.Serialize(objStream,objClass);Console.WriteLine("反序列化结果:");objStream.Position = 0;System.Xml.XmlTextReader xr = new System.Xml.XmlTextReader(objStream);
System.Xml.XmlDocument objXml = new System.Xml.XmlDocument();
objXml.Load(xr);Console.WriteLine(objXml.OuterXml);
Console.WriteLine("反序列化结果:");
System.Xml.Serialization.XmlSerializer mySerializer = new System.Xml.Serialization.XmlSerializer(typeof(myClass));objStream.Position = 0;//添加
myClass objNewClass = (myClass)mySerializer.Deserialize(objStream);Console.WriteLine(objNewClass.m_StringTest);你记得第一次的Position = 0却忘了第二次Position = 0