公司有一个产品,后台采用.net开发,前台是delphi。
通过Remobjects可以达到两者的互通,而且比较方便。
1. 获得远程asmx的地址,跟着一个?wsdl,可以把.net webservices导入到RO内,注意在点击import之前选择CheckBox(Wrapper .net parameters)
2. CoServices.create 的参数要传入msg和channel,其中的channal需要使用winhttp,msg需要采用soap
3. 调用对应services内的方法即可
以上当然是比较刻板的一些内容,照做即可。值得说的是:delphi调用.net的services,不但可以传值,也可以传引用,比如delphi的var参数,对应.net的ref参数。
另外一个delphi中的数据集dataset是非常好用的,在系统开发中也非常常用,但是.net中并不直接存在这个对应的类型,更加没有办法直接通过网络传递了。
如何让他们直接的对话呢?我们以前采用的方式是通过自己打包dataset到xml的方式,看起来很麻烦,现在准备采用的是csv方式,也就是说,。net把数据保存到StringStream内,通过String传递给客户端,客户端通过clientdataset或者ado,直接装入csv即可。
这样做有些问题。首先是二进制的内容肯定不支持的了,其次字段内有nr的也没有办法。
不过我们现在这个系统不需要二进制的,有nr的可以做一个转义处理就好。不需要做xml-object mapping,也不必写一些mapping class ,转换为csv,从csv到dataset,都是.net dataset,delphi dataset 本身就有的功能。
因此相对编码为xml的来说,代码有少很多,还是要方便的多了。
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/764121/viewspace-890578/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/764121/viewspace-890578/