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文件。然后在主窗体中加入测试代码:
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模式。