I'm not sure I see anything so I will just show the entire wsdl, hopefully
someone can find something that will show me what to change in the wsdl to
change so that I not pass the parameter by ref:
<?xml version="1.0" encoding="utf-8" ?>
- <wsdl:definitions xmlns:soap="http://schemas.xmlsoap.org/wsdl/soap/"
xmlns:tm="http://microsoft.com/wsdl/mime/textMatching/"
xmlns:soapenc="http://schemas.xmlsoap.org/soap/encoding/"
xmlns:mime="http://schemas.xmlsoap.org/wsdl/mime/"
xmlns:tns="http://tempuri.org"
xmlns:s1="http://schemas.microsoft.com/BizTalk/2003/Any"
xmlns:s="http://www.w3.org/2001/XMLSchema"
xmlns:soap12="http://schemas.xmlsoap.org/wsdl/soap12/"
xmlns:http="http://schemas.xmlsoap.org/wsdl/http/"
targetNamespace="http://tempuri.org"
xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">BizTalk
assembly "MyMethod, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=54556428737eb89f" published web service.</wsdl:documentation>
- <wsdl:types>
- <s:schema elementFormDefault="qualified"
targetNamespace="http://tempuri.org">
<s:import namespace="http://schemas.microsoft.com/BizTalk/2003/Any" />
- <s:element name="MyMethod">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="0" maxOccurs="1" ref="s1:Root" />
</s:sequence>
</s:complexType>
</s:element>
- <s:element name="MyMethodResponse">
- <s:complexType>
- <s:sequence>
<s:element minOccurs="0" maxOccurs="1" ref="s1:Root" />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
- <s:schema elementFormDefault="qualified"
targetNamespace="http://schemas.microsoft.com/BizTalk/2003/Any">
- <s:element name="Root">
- <s:complexType mixed="true">
- <s:sequence>
<s:any />
</s:sequence>
</s:complexType>
</s:element>
</s:schema>
</wsdl:types>
- <wsdl:message name="MyMethodSoapIn">
<wsdl:part name="parameters" element="tns:MyMethod" />
</wsdl:message>
- <wsdl:message name="MyMethodSoapOut">
<wsdl:part name="parameters" element="tns:MyMethodResponse" />
</wsdl:message>
- <wsdl:portType name="TransportOrdersWSSoap">
- <wsdl:operation name="MyMethod">
<wsdl:input message="tns:MyMethodSoapIn" />
<wsdl:output message="tns:MyMethodSoapOut" />
</wsdl:operation>
</wsdl:portType>
- <wsdl:binding name="TransportOrdersWSSoap"
type="tns:TransportOrdersWSSoap">
<soap:binding transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="MyMethod">
<soap:operation soapAction="http://tempuri.org/WebService_MyMethod/MyMethod"
style="document" />
- <wsdl:input>
<soap:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:binding name="TransportOrdersWSSoap12"
type="tns:TransportOrdersWSSoap">
<soap12:binding transport="http://schemas.xmlsoap.org/soap/http" />
- <wsdl:operation name="MyMethod">
<soap12:operation
soapAction="http://tempuri.org/WebService_MyMethod/MyMethod"
style="document" />
- <wsdl:input>
<soap12:body use="literal" />
</wsdl:input>
- <wsdl:output>
<soap12:body use="literal" />
</wsdl:output>
</wsdl:operation>
</wsdl:binding>
- <wsdl:service name="TransportOrdersWS">
<wsdl:documentation xmlns:wsdl="http://schemas.xmlsoap.org/wsdl/">BizTalk
assembly "MyMethod, Version=1.0.0.0, Culture=neutral,
PublicKeyToken=54556428737eb89f" published web service.</wsdl:documentation>
- <wsdl:port name="TransportOrdersWSSoap"
binding="tns:TransportOrdersWSSoap">
<soap:address
location="http://localhost/TransportOrdersWS/TransportOrdersWS.asmx" />
</wsdl:port>
- <wsdl:port name="TransportOrdersWSSoap12"
binding="tns:TransportOrdersWSSoap12">
<soap12:address
location="http://localhost/TransportOrdersWS/TransportOrdersWS.asmx" />
</wsdl:port>
</wsdl:service>
</wsdl:definitions>
"John Saunders" <john.saunders at trizetto.comwrote in message
news:eW*************@TK2MSFTNGP05.phx.gbl...
"Nick K." <nk*****@msn.comwrote in message
news:uS**************@TK2MSFTNGP04.phx.gbl...
>>I use wsdl.exe to generate client code to call a web service. The actual
web service is generated with the BizTalk Web Services Publishing Wizard.
I'm not sure this is particular to the BizTalk code but the calls to web
methods pass parameters by ref so that I have to call it like:
XmlDocument doc = new XmlDocument();
doc.LoadXml(message);
XmlNode node = doc.DocumentElement.ParentNode;
ws.MyMethod(ref node);
I attempt to modify the generated client code so that the parameter is
not passed by ref and is instead returned as a response but I keep
getting an "object not referenced" error.
Is there a way to tell wsdl.exe to not generate a "ref" parameter?
Is the problem I describe just because this is calling a BizTalk web
service or have others seen this?
If WSDL.EXE is generating a "ref" parameter, then the chances are that it
needs to be a "ref" parameter.
Have you taken a look into the WSDL file to see what it says about this
parameter?
John