第一次发博文,文笔不好请大家见谅。
最近在开发一套基于元模型的软件基础框架,在开发语言方面 服务端采用java ,客户端为C# winform程序。Csharp 和java通信基于的基础类型有int,string,bool等,用过.net的同学都应该感受过DataTable和DataSet的强大,可以直接转换数据表,可以直接绑定数据源控件等。好处很多但是有个问题java 不支持DataSet。如果想实现C# 和java 基于dataSet的通信需要做以下几件事
1〉 JAVA端封装DataSet对象
2〉 java端DataSet对象和C#端的DataSet对象约定好一个序列化和反序列化规则,分别实现序列化和反序列化。
如下图所示
1. 蓝色线表示客户端发起任务请求,如果参数类型为DataSet则需要按照和服务端一样的序列化规则进行序列化而后调用服务端的服务接口进行访问服务端。
2. 服务端接受到客户端的请求后,因为知道客户端有传入DataSet则需要把传入的字节流按按照和客户端一样的反序列化规则生成DataSet对象供服务端处理。
3. 服务端处理完后(绿色线)需要返回一个DataSet对象,需要按照和客户端一样的序列化规则进行序列化后进行返回
4. 客户端接受到返回结果后,因为知道服务端返回的是DataSet则需要把返回的字节流按照和服务端一样的的反序列化规则生成DataSet对象供客户端处理。通信完成