定义了一个DataTable类myTable,继承自DataTable。里面增加了一个自己的类,用来存放一些数据。定义如下: [Serializable()]
public class myTable:DataTable
{
private UpdateParm _updateParm = new UpdateParm();
public UpdateParm updateParm
{
get { return _updateParm; }
set { _updateParm = value; }
} public DataTableBase() :base(){ } protected DataTableBase(SerializationInfo info, StreamingContext context) : base(info, context) { }
}数据访问层中,从数据库检索数据到myTable1(myTable的一个实例)中,并且设置myTable1.updateParm.mytext="测试值"。mytext是UpdateParm 类的一个属性。序列化脚本如下,返回byte[]
byte[] bArrayResult = null;
myTable1.RemotingFormat = SerializationFormat.Binary;
MemoryStream ms = new MemoryStream();
IFormatter bf = new BinaryFormatter();
bf.Serialize(ms, myTable1);
bArrayResult = ms.ToArray();
ms.Close();反序列化脚本:
MemoryStream ms = new MemoryStream(bUserData);
IFormatter bf = new BinaryFormatter();
object obj = bf.Deserialize(ms);
bTable = (myTable)obj;
ms.Close();反序列化后,myTable1数据正常,但是myTable1.updateParm.mytext的值却没有传递成功,请帮忙分析一下是什么原因?UpdateParm类 也有[Serializable]特性
public class myTable:DataTable
{
private UpdateParm _updateParm = new UpdateParm();
public UpdateParm updateParm
{
get { return _updateParm; }
set { _updateParm = value; }
} public DataTableBase() :base(){ } protected DataTableBase(SerializationInfo info, StreamingContext context) : base(info, context) { }
}数据访问层中,从数据库检索数据到myTable1(myTable的一个实例)中,并且设置myTable1.updateParm.mytext="测试值"。mytext是UpdateParm 类的一个属性。序列化脚本如下,返回byte[]
byte[] bArrayResult = null;
myTable1.RemotingFormat = SerializationFormat.Binary;
MemoryStream ms = new MemoryStream();
IFormatter bf = new BinaryFormatter();
bf.Serialize(ms, myTable1);
bArrayResult = ms.ToArray();
ms.Close();反序列化脚本:
MemoryStream ms = new MemoryStream(bUserData);
IFormatter bf = new BinaryFormatter();
object obj = bf.Deserialize(ms);
bTable = (myTable)obj;
ms.Close();反序列化后,myTable1数据正常,但是myTable1.updateParm.mytext的值却没有传递成功,请帮忙分析一下是什么原因?UpdateParm类 也有[Serializable]特性
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货