Добрый день.
Пишу на Delphi 7 приложение (клиентскую и серверную части) для передачи некоторых данных TMemoryStream функцией SOAP на сервер и последующей обработки. Использую стандартную делфишную заготовку SOAP Server Application и компоненту THTTPRIO на клиенте.
Для передачи в intf модуле объявлен свой тип:
Код:
TTransferStream = class(TRemotable)
private
FTransferStream: TMemoryStream;
public
property MStream: TMemoryStream read FTransferStream write FTransferStream;
end;
Там же в разделе initialization зарегистрировал его:
Код:
RemClassRegistry.RegisterXSClass(TTransferStream);
RemClassRegistry.RegisterXSInfo(TypeInfo(TTransferStream));
Вот функция на сервере:
Код:
function TClientSOAP.RegisterShipments(TransferStream : TTransferStream) : String;
begin
if TTransferStream(TransferStream) <> nil then
Result := IntToStr(TTransferStream(TransferStream).MStream.Size)
else
Result := 'TTransferStream(TransferStream) = nil';
end;
Проблема в том, что при передаче с клиента непустого TranferStream проверка на сервере TTransferStream(TransferStream) <> nil всегда дает отрицательный результат - т.е. переменная пуста.
Кстати, если в качестве входного параметра функции передавать строку String - все ок - что отправил с клиента, то и приходит на сервер.
Подскажите, что же я делаю не так?