对于do<T>,在调用的时候,T确定,参数也值确定,那么只要:
1、传递参数时,把参数序列化为字符串(可以是json、xml等),同时把类型完整名也以参数的形式传递
2、服务端接收到数据后,首先解析参数类型,然后再依据参数类型反序列化参数内容为目标类型的对象
3、获得泛类型do<>,然后以此泛类型和参数类型一起构建实际的泛型do<T>
4、服务端使用do<T>运行
参数是个对象实例,“依据参数类型反序列化参数内容为目标类型的对象”能做到?
@企_牛: 可以通过参数使用GETTYPE获取类型,然后根据这个类型去寻找最兼容的方法执行。
传json自付串,但实际上没什么意义,你服务端要是事先不知道传入参数类型,你拿到了。也没用
当我没问答,我没发现你是做Java的
有个奇怪的问题,你都知道反射了,那还问啥呢?
就是用的反射技术,根据参数,反射可以生成对应的实例。
生成对应的实例,能生成类的所有信息,但是参数的值能取到么?
@企_牛: 参数的值那就更加没有问题了,你通过JSON什么值不能发呢?
其实这个问题应该只是楼主脑子一时没有转过弯来。
大概的流程应该是这样
1、通过反射生成新实例
2、通过Mapper技术将Client传过来的对象属性值赋值给新的对象。
.net 里的WCF,Remoting 远程调用都不支持范型的