[Mono-dev] WS stack.
atsushi at ximian.com
Wed Feb 7 10:27:50 EST 2007
Daniel Lundqvist wrote:
> Hey again :)
> ons 2007-02-07 klockan 20:51 +0900 skrev Atsushi Eno:
>> Hi Daniel,
>> Daniel Lundqvist wrote:
>>> Hi Atsushi,
>>> mån 2007-02-05 klockan 15:14 +0900 skrev Atsushi Eno:
>>>> Hi Daniel,
>>>> Daniel Lundqvist wrote:
>>>>> 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 188.8.131.52 but the
>>>>> problem is in SVN as well from what I can see.
>>>> Oh, cool. Can you please share the patch so that it could be fixed?
>>> Of course, thought I attached it but I'll reattach it. The problem is
>>> that XmlTypeMapMember::CheckOptionalValueType is never called and thus
>>> the OPTIONAL bit in its flags field is never set (Which is then checked
>>> in XmlSerializationWriterInterpreter::MemberHasValue).
>> Thanks :) However, now I tried your patch but it does not seem to
>> fix the issue. Do you have actual case that the patch indeed fix
>> the issue? I attached what I tried.
> Weird. I've redone my tests with the 1.2.3 release. With a stock
> System.Xml.dll it have the problem but with a patched (with the patch I
> sent earlier) it don't.
>>> There are some other places (I think) that XmlTypeMapMember is
>>> instanciated but I didn't add the call there, so this patch only fixes
>>> my problem. Perhaps this call should be placed in a more appropiate
>>> place, but I don't speak the XML/WS stack fluently enough to find where.
>> If your patch does not fix the case that I attached, then yes it is
>> likely to happen. I'd wait for your case and try to fix it.
> Now I think I see one issue. Since you are using WebService and
> WebMethod attributes perhaps they are hitting the other path that is
> calling CreateMapMember(), in ImportMembersMapping in either
> XmlReflectionImport.cs or SoapReflectionImport.cs (depends on using
> literal encoding or not).
> After some more investigation that seems to be the case. From what I can
> see the enclosing type is not available at that point (which is needed
> to call XmlTypeMapMember::CheckOptionalValueType).
Well, however removing [WebService] didn't change anything, and
without [WebMethod] it doesn't expose any ports. Or are you checking
anything else than the output WSDL? (As long as the WSDL contains
'oldSpecified' and 'parentoidSpecified' the issue isn't fixed.)
Probably a reproducible example would tell me what exactly is the
issue you are having fix.
More information about the Mono-devel-list