在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
虽然Delphi 2007已经发布一年有余,但是在实际的工作中仍然是Delphi 7或更早的版本被大量使用。 下载地址:http://cc.codegear.com/Item/24535 下载后的更新安装过程,请参照文件包中的readme.html文件。 2.为了测试,先在Visual Studio 2008中创建一个简单WCF服务。 A.新建WCF服务网站; B.定义服务接口;这里我们简单的做一个加法运算,在IService.cs文件中加入下面代码:
// 任务: 在此处添加服务操作
[OperationContract] int Add(int a, int b); C.实现服务接口;在Service.cs文件中加入下面代码:
#region IService 成员
public int Add(int a, int b) { return a + b; } #endregion D.修改服务的Binding属性为basicHttpBinding; 可以直接修改Web.config文件,或通过Microsoft Service Configuration Editor进行编辑,打开Microsoft Service Configuration Editor(工具菜单->Microsoft Service Configuration Editor),然后打开我们的站点(Microsoft Service Configuration Editor的File菜单->WebHosted Service...->选择我们建立的WCF服务网站),在“Configuration”窗口中打开Endpoints(Services -> Service -> Endpoints),可以看到有两个Endpoint,其中一个的Binding属性为mexHttpBinding,保持不变,另外一个Endporint的Binding属性默认为wsHttpBinding,将其修改为basicHttpBinding,保存并退出。 至此一个简单的WCF服务网站已经建立完成,可以通过 http://localhost/WCFService/Service.svc 查看。 3.生成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文件。 4.创建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模式。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论