C# 反序列化时如何识别是哪个对象 30
比如:反序列化时得到的是object对象,我怎么知道它具体是何种对象(因为程序中会涉及好多种对象,比如登陆的,注册的,加好友的,下线的等等)!我在网上找了一上午,大体的解...
比如:反序列化时得到的是object对象,我怎么知道它具体是何种对象(因为程序中会涉及好多种对象,比如登陆的,注册的,加好友的,下线的等等)!
我在网上找了一上午,大体的解决方法是这样的:
1.定义一个这些对象的基类,其中有个CommandType字段(这里我觉得枚举好些)。序列化时用的是具体的某个类,
反序列化时用的是基类,然后再根据CommandType的不同将其强制转换为所需的类型。
这样做倒是解决了问题,不过类型多时就不是很好了。总之,我感觉不是一个好办法。
2.有的人说用obj.GetType();可是说的很含糊。我猜想他的意思是不是用Type类型得到具体类型的实例。可是具体怎么做,
我不会,还望知道的人,不吝赐教!
不管是新的想法还是方法2的补充,我都很感激,谢谢! 展开
我在网上找了一上午,大体的解决方法是这样的:
1.定义一个这些对象的基类,其中有个CommandType字段(这里我觉得枚举好些)。序列化时用的是具体的某个类,
反序列化时用的是基类,然后再根据CommandType的不同将其强制转换为所需的类型。
这样做倒是解决了问题,不过类型多时就不是很好了。总之,我感觉不是一个好办法。
2.有的人说用obj.GetType();可是说的很含糊。我猜想他的意思是不是用Type类型得到具体类型的实例。可是具体怎么做,
我不会,还望知道的人,不吝赐教!
不管是新的想法还是方法2的补充,我都很感激,谢谢! 展开
展开全部
关心一些莫名其妙的问题。
你编程你要用什么类型就去序列化什么类型,反序列化时候你肯定有一个你想得到的类型,如果你要得到的类型是DataTable,你反序列化出来是obj
就直接
DataTable dt=obj as DataTable;就OK乐。
如果obj是dt那就会得到一个DataTable,如果不是就得到一个NULL。管其他那么多干什么,静关心些不该关心的事
你编程你要用什么类型就去序列化什么类型,反序列化时候你肯定有一个你想得到的类型,如果你要得到的类型是DataTable,你反序列化出来是obj
就直接
DataTable dt=obj as DataTable;就OK乐。
如果obj是dt那就会得到一个DataTable,如果不是就得到一个NULL。管其他那么多干什么,静关心些不该关心的事
本回答被网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
补充2的方法:用映射
上网查询C#映射就OK了
上网查询C#映射就OK了
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询