目前有个项目要在delphi里调用一系列的Webservice(也是delphi写的),正常我们是这样写的:mHttpRio := THTTPRIO.Create(nil);
mHttpRio.URL := 'XXXXXXXXXXXXXXX';
Result := (mHttpRio as ITest).Test;想到delphi有泛型,于是设计了一个函数:
GetRemoteService<T>: T;
begin
mHttpRio := THTTPRIO.Create(nil);
mHttpRio.URL := 'XXXXXXXXXXXXXXX';
//问题来了,接下里我怎么把 mHttpRio 转换成 T类型后返回??
end;实际调用时我只需要;
var
mService: ITest;
begin
mService := GetRemoteService<ITest>;
Result := mService.Test;
end;备注:我设计这个函数的目的:1、若干Webservice的接口类型不一样;
2、每个Webservice的url也是不一样的,但可以透过接口类型去获取
mHttpRio.URL := 'XXXXXXXXXXXXXXX';
Result := (mHttpRio as ITest).Test;想到delphi有泛型,于是设计了一个函数:
GetRemoteService<T>: T;
begin
mHttpRio := THTTPRIO.Create(nil);
mHttpRio.URL := 'XXXXXXXXXXXXXXX';
//问题来了,接下里我怎么把 mHttpRio 转换成 T类型后返回??
end;实际调用时我只需要;
var
mService: ITest;
begin
mService := GetRemoteService<ITest>;
Result := mService.Test;
end;备注:我设计这个函数的目的:1、若干Webservice的接口类型不一样;
2、每个Webservice的url也是不一样的,但可以透过接口类型去获取
解决方案 »
- 中山大学delphi视频51讲到哪儿下载
- 我想做一个类似“BT搜宝”的工具,链接到其它网站,然后把其网站上的内容(或搜索内容)保存在数据库中,请各位有经验或有兴趣的朋友指点
- 欲求三层的简单的实例(可加到100分)
- NoReady(亦正亦偏) 、 Jasonn(阿东) 、 minnie0411(哆啦A梦)
- 请问如何设置DBGridEH的多行标头
- 高分求书
- 如何使用DEPHI的VCLZIP和VCLUNZIP控件?
- 奇怪,excel
- 为什么mythread没有execute???
- 如何用编程的方法,将IE窗口中的网页保存为一个单一的.mht文件
- 程序没有用该控件,但运行程序时提示File not found *.duc
- TIdHttp与TIdSSLIOHandlerSocketOpenSSL的问题
function GetRemoteService<T>: T;
begin
mHttpRio := THTTPRIO.Create(nil);
mHttpRio.URL := 'XXXXXXXXXXXXXXX';
mHttpRio.QueryInterface(GetTypeData(TypeInfo(T)).Guid, Result);
end;
顺便问一下,Supports 不能用吗?