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

反序列化时怎么识别是哪个对象

2012-03-24 
反序列化时如何识别是哪个对象?一个C#的C/S程序,采用异步方法,通过SoapFormatter将对象序列化发送,接收时

反序列化时如何识别是哪个对象?
一个C#的C/S程序,采用异步方法,通过SoapFormatter将对象序列化发送,接收时反序列化对象.
问题时发送多个对象,接收时,如何在反序列化时得知要反序列化的是哪个对象?


[解决办法]
如果不知道类型就按Object来反序列化,然后使用GetType()得到类型信息再做出操作决定
[解决办法]
一般是要用“接口”来接收反序列化出的“实例”的。
要不然你怎么调用实例的方法呢?
而且我觉得只有这样才能体现多态的好处——后期绑定,最终还是要绑定的嘛!
[解决办法]
定义一个基类A,基类有个属性m;
要序列化反序列化的几个类都继承这个基类,每个子类的m属性值是不同的;
序列化的是子类A1,A2...
反序列化时用基类A,即A a = (A)formatter.Deserialize(netstrm);
然后if(a.m==1){ A1 a1=(A1) a; ... }
else if(a.m==2){ A2 a2=(A2) a; ... }

我就是这样做的

热点排行