浙林龙哥

   :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

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模式。

 

 

 

posted on 2010-03-29 16:55  浙林龙哥  阅读(3011)  评论(1编辑  收藏  举报