日期:2014-05-17  浏览次数:20714 次

Silvelright 与 Socket服务器通信的 序列化规则
我的Socket通信服务器是根据对象类型然后反射调用方法的
最常用的序列化规则是Json和Xml但是这两个序列化在反序列化的时候必须提前知道是什么类型
我求一种方法能够在Silverlight客户端序列化之后服务器端可以直接获取这个数据的类型

------解决方案--------------------
类型是给编译器用的。

如果没有类型,你只能当作一般的数据解析了。除非使用emit,或者动态编译,否则对于C#无法在运行的时候产生类型,即便产生了,意义也不大。因为如我所说,类型是给编译器用的。
------解决方案--------------------
Socket服务器设计可采用类似于WCF,即告诉它调用什么哪个服务(类),哪个函数,有多少参数。
返回给客户端也是告客户端我返回的是哪个服务、哪个函数、结果的数据类型是什么,结果的值。
这样,双方的才好知道什么交换法。这样就可以跨平台,当然你的数据类型都得是双方支持的。像返回类(对象)的东西则可以通过json或xml反序化到本地数据类型。