[Mono-dev] WS stack.

Daniel Lundqvist Daniel.Lundqvist at packetfront.com
Thu Feb 1 06:35:23 EST 2007


Hi,

After doing some work on an internal product I encountered some issues with the WS stack in Mono.

1) When serializing to XML it don't respect optional for value types. I have a type that get the below proxy code from wsdl tool:

/// <remarks/>
[System.Xml.Serialization.SoapType(Namespace="urn:packetfront_becs")]
public class @object {

   /// <remarks/>
   public System.UInt64 oid;
       
   /// <remarks/>
   [System.Xml.Serialization.SoapIgnore()]
   public bool oidSpecified;
       
   /// <remarks/>
   public System.UInt64 parentoid;
       
   /// <remarks/>
   [System.Xml.Serialization.SoapIgnore()]
   public bool parentoidSpecified;
       
   /// <remarks/>
   public string creator;
}

The issue here is that it always sends the oid and parentoid field regardless of value of <field>Specified.
I got a patch (against SVN) for it, don't know if it's correct but solves the problem for me. So now it only sends oid and parentoid when <field>Specified is set to true. This was tested with 1.1.17.1 but the problem is in SVN as well from what I can see.

2) When using wsdl2 from latest release of Mono I have the following issues:
 1) When using properties for member access, and field is the same name as a keyword it don't prefix the property name with @.
 2) It seems to generate each service binding twice. One with the normal name and another with <name>1. I.i
    [System.Web.Services.WebServiceBinding(Name="packetfront_becs", Namespace="urn:packetfront_becs")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public class packetfront_becs : System.Web.Services.Protocols.SoapHttpClientProtocol {
     <snip>
    }
   
    [System.Web.Services.WebServiceBinding(Name="packetfront_becs", Namespace="urn:packetfront_becs")]
    [System.Diagnostics.DebuggerStepThroughAttribute()]
    [System.ComponentModel.DesignerCategoryAttribute("code")]
    public class packetfront_becs1 : System.Web.Services.Protocols.SoapHttpClientProtocol {
     <snip>
    }

#2 can be worked around by using the wsdl tool instead.

Other than this it works like a charm so kudos to you all for doing an magnificent work.

--
daniel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://lists.ximian.com/pipermail/mono-devel-list/attachments/20070201/127c37f7/attachment.html 


More information about the Mono-devel-list mailing list