FROM http://www.cnblogs.com/povoz/archive/2008/04/04/1137173.html
1.更新Delphi SOAP Runtime and Importer。 这一点非常的注要,因为原本Delphi 7自带的WSDLImp.exe无法正确生成WCF服务代理。CodeGear官方已经给出了更新,而且可以免费下载。 下载地址:http://cc.codegear.com/Item/24535 下载后的更新安装过程,请参照文件包中的readme.html文件。 2.生成WCF访问代理。 因为前面我们已经更新了Delphi SOAP Runtime and Importer,现在可以在C:\Program Files\Borland\Delphi7\Bin找以WSDLImp.exe,更新后的版本为2.2.10138。 在“命令提示符”中输入:WSDLImp http://localhost/WCFService/Service.svc?wsdl 就可以在当前目录下生成一个Service.pas文件。
3.创建Delphi 7应用程序。 创建一个Delphi 7应用程序,并引入上面我们创建的Service.pas文件。然后在主窗体中加入测试代码:
procedure TForm1.Button1Click(Sender: TObject); var a, b, c:Integer; begin a := StrToInt(Edit1.Text); b := StrToInt(Edit2.Text);
c := GetIService.Add(a, b);
Label1.Caption := IntToStr(c); end;
到这里,通过Delphi 7访问WCF服务已经实现了。但是要说的是这仅仅是第一步,在Delphi 7中是否可以充分利用WCF服务的功能还有待进一步摸索。
4月5日更新: 进一步摸索尝试之后,发现Delphi自身的SOAP Runtime对Web Service的新标准、特性支持并不好。 第三方库对SOAP也有支持,但效果并不理想。 Pure SOAP网络上有一些介绍,但没有找到下载。 IndySOAP目前版本是1.0,官方说明支持SOAP 1.2,但试用没有成功。 IP*Works支持SOAP,但仅限SOAP 1.1标准。
结论:在Delphi中仅能使用WCF中的基本功能,也就是兼容ASMX模式。
|
请发表评论