我要投搞

标签云

收藏小站

爱尚经典语录、名言、句子、散文、日志、唯美图片

当前位置:2019全年资料大全正版 > 反序列化 >

C 反序列化时如何识别是哪个对象

归档日期:07-14       文本归类:反序列化      文章编辑:爱尚语录

  比如:反序列化时得到的是object对象,我怎么知道它具体是何种对象(因为程序中会涉及好多种对象,比如登陆的,注册的,加好友的,下线的等等)!我在网上找了一上午,大体的解决方法...

  比如:反序列化时得到的是object对象,我怎么知道它具体是何种对象(因为程序中会涉及好多种对象,比如登陆的,注册的,加好友的,下线的等等)!

  1.定义一个这些对象的基类,其中有个CommandType字段(这里我觉得枚举好些)。序列化时用的是具体的某个类,

  反序列化时用的是基类,然后再根据CommandType的不同将其强制转换为所需的类型。

  这样做倒是解决了问题,不过类型多时就不是很好了。总之,我感觉不是一个好办法。

  2.有的人说用obj.GetType();可是说的很含糊。我猜想他的意思是不是用Type类型得到具体类型的实例。可是具体怎么做,

  不管是新的想法还是方法2的补充,我都很感激,谢谢!展开我来答

  可选中1个或多个下面的关键词,搜索相关资料。也可直接点“搜索资料”搜索整个问题。

  你编程你要用什么类型就去序列化什么类型,反序列化时候你肯定有一个你想得到的类型,如果你要得到的类型是DataTable,你反序列化出来是obj

  如果obj是dt那就会得到一个DataTable,如果不是就得到一个NULL。管其他那么多干什么,静关心些不该关心的事

  目前也在研究中,我的方法是在序列化的时候把类型的FullName作为xml根标签的属性一块写进去,反序列化的时候先读这个属性,Type.GetType(×××),这样就能得到类型了,相比效率应该要高些,不过还不是最好的办法,有个XmlInclude特性可以利用,不过现在还没研究出来咋用。另外说下一楼的,反射是精华,不要拿自己的无知来对别人说三道四的

本文链接:http://buggystordera.com/fanxuliehua/774.html