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

C#反序列化数据后,应用as转换对象出错

2013-09-08 
C#反序列化数据后,使用as转换对象出错一个简单的C/S程序,使用的UDP数据报,Client端登陆时创建一个User对象

C#反序列化数据后,使用as转换对象出错
一个简单的C/S程序,使用的UDP数据报,Client端登陆时创建一个User对象,然后发送给Server端,Server端进行验证,可是Server端将Client端发来的数据反序列化后使用as转换失败,值为null。请大家帮忙看一下什么问题:

Client端:

    MemoryStream memStream = new MemoryStream();
    BinaryFormatter formatter = new BinaryFormatter();
    //自己定义的一个与服务器端进行沟通的累
    ContactWithServer contactWithServer;  

    formatter.Serialize(memStream, user);
    data = memStream.ToArray();
    contactWithServer.sendData(data,data.Length);

Server端:

    data  = receiveUdpClient.Receive(ref ipep);   //从客户端接收数据报
    memStream = new MemoryStream(data);
    memStream.Seek(0, SeekOrigin.Begin);
    Object obj = formatter.Deserialize(memStream);
    User user =  obj as User;
    if(user == null)
         MessageBox.Show("空对象");


当然你也可以总是copy文件然后分别放到不同工程里。但是保持两份,就多一倍的出错几率。
------解决方案--------------------


哦你使用的是 BinaryFormatter。

建议修改一下。我找到以前回复的一个帖子,请参考:http://bbs.csdn.net/topics/390552190

热点排行