【发布时间】:2011-04-05 08:38:25
【问题描述】:
我使用 WSDL 导入器在 Delphi XE 中创建了 Web 服务。 Delphi 为我生成了模块 ITransmitter1.pas ITransmitter 接口和 GetITransmitter 函数。
要使用我使用的网络服务:
var Transmitter: ITransmitter;
begin
Transmitter := GetITransmitter(True, '', nil);
Transmitter.Transmit(Memo1.Text, OutXML);
end;
但我看不到 Transmit 方法的任何主体...
在 ITransmitter.pas 我看到:
InvRegistry.RegisterInterface(TypeInfo(ITransmitter), 'urn:TransmitterIntf-ITransmitter', 'utf-8');
InvRegistry.RegisterDefaultSOAPAction(TypeInfo(ITransmitter), 'urn:TransmitterIntf-ITransmitter#Transmit');
如果我评论此行,我会收到“不支持接口”错误。 正如我在这里看到的,delphi 正在 RunTime 中添加方法! 它是如何工作的 ?我可以在运行时将方法添加到我自己的类中吗?
【问题讨论】:
标签: web-services delphi interface runtime