Здравствуйте, Shtirliz, Вы писали:
S>Здравствуйте, Den1974, Вы писали:
S>А ты делал импорт WSDL?
S>т.е. что используешь на клиенте? откуда описание интерфеса?
описание интерфейса я так понял берется прямо с сервера:
HTTPRIO.WSDLLocation:='http://127.0.0.1/project1.exe/wsdl/ICentimeterInch';
HTTPRIO.Service:='ICentimeterInchservice';
HTTPRIO.Port:=ICentimeterInchPort;
Мне не нужно делать импорт, т.к. и сервер и клиент мой: и там и там я использую модуль CentimeterInchIntf
{ Invokable interface ICentimeterInch }
unit CentimeterInchIntf;
interface
uses InvokeRegistry, Types, XSBuiltIns;
type
TCurrency = class(TRemotable)
private
FExchangeRate: double;
FName: string;
public
property ExchangeRate: Double read FExchangeRate write FExchangeRate;
property Name: string read FName write FName;
end;
TCurrencyArray = array of TCurrency;
{ Invokable interfaces must derive from IInvokable }
ICentimeterInch = interface(IInvokable)
['{36A46AA9-962D-420B-A1A3-6D2F230E7B42}']
function Cm2Inch(Inch: Double): Double; stdcall;
function Inch2Cm(Cm: Double): Double; stdcall;
function GetCurrency(const aCurrency: TCurrency): TCurrency; stdcall;
end;
implementation
initialization
{ Invokable interfaces must be registered }
InvRegistry.RegisterInterface(TypeInfo(ICentimeterInch));
RemClassRegistry.RegisterXSClass(TCurrency);
RemClassRegistry.RegisterXSInfo(TypeInfo(TCurrencyArray));
end.