Click here to Skip to main content
11,634,827 members (65,194 online)
Click here to Skip to main content

.NET SOAP Web Service client and Borland SOAP server

, 3 Jun 2011 CPOL 9.5K 1
Rate this:
Please Sign up or sign in to vote.
If you have a SOAP server created with Borland Delphi and a SOAP client created with .NET, then you can't get it working out of the box.

If you have a SOAP server created with Borland Delphi and a SOAP client created with .NET, then you can't get it working out of the box. You'll get deserialization error on client side. Some changes are required in the SOAP server to make it compatible with the .NET client.

  1. You need to go to the SOAP web module, select the HTTPSoapPascalInvoker, and make sure the option "soRootRefNodesToBody" is true.
  2. If you have DateTime fields in your TRemotable objects, then you need to override the ObjectToSOAP function like this (because if you don't, then the deserializer will just skip the DateTime fields):
  3. BillInfoType = class(TRemotable)

    ...

    function BillInfoType.ObjectToSOAP(RootNode, ParentNode: IXMLNode; 
             const ObjConverter: IObjConverter; const Name, 
             URI: InvString; ObjConvOpts: TObjectConvertOptions; 
             out RefID: InvString): IXMLNode;
    begin
      ObjConvOpts := ObjConvOpts + [ocoDontPrefixNode];
      result := inherited ObjectToSOAP(RootNode, ParentNode, ObjConverter, Name, URI, ObjConvOpts, RefID);
    end;

Good luck!

License

This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

Share

About the Author

Alexey Merson
Software Developer
Russian Federation Russian Federation
No Biography provided

You may also be interested in...

Comments and Discussions

 
-- There are no messages in this forum --
| Advertise | Privacy | Terms of Use | Mobile
Web04 | 2.8.150728.1 | Last Updated 3 Jun 2011
Article Copyright 2011 by Alexey Merson
Everything else Copyright © CodeProject, 1999-2015
Layout: fixed | fluid