首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

Dataset反序列化被阉解决方法

2012-09-10 
Dataset反序列化被阉C# code[Serializable]public partial class MyDataSet : DataSet, ISerializable{pub

Dataset反序列化被阉

C# code
    [Serializable]    public partial class MyDataSet : DataSet, ISerializable    {        public MyDataSet()        { }        protected MyDataSet(SerializationInfo info, StreamingContext context)          {}    }        private void btn反序列化_Click(object sender, EventArgs e)        {                  byte[] buffer = null;            IFormatter formater = new BinaryFormatter();            MemoryStream ms = new MemoryStream();            MemoryStream fs = new MemoryStream();            DataTable dt=dsSYS_TestM.Tables[0].Copy();            MyDataSet md = new MyDataSet();            md.Tables.Add(dt);            formater.Serialize(ms, md);            buffer = new byte[(int)ms.Length];            ms.Position = 0;            ms.Read(buffer, 0, (int)ms.Length);            ms.Close();            IFormatter bina = new BinaryFormatter();            MemoryStream ms1 = new MemoryStream(buffer);            MyDataSet d = (MyDataSet)bina.Deserialize(ms1);            ms1.Close();        }

如上代码,最后 d 为空,反序列化不成功,请大家帮忙~

[解决办法]
请用ms.ToArray()来获取buffer,否则在Read方法调用前,先flush,让数据立即写入。
[解决办法]
不是很明白……学习
[解决办法]
不懂!希望有高手来帮你解决

热点排行