Новичок
Профиль
Группа: Участник
Сообщений: 35
Регистрация: 21.7.2005
Репутация: нет Всего: нет
|
Проблема с передачей параметров в веб сервис. Сгенерирован прокси класс(часть кода): Код | public partial class Request { private VPair[][] vpairsField; /// <remarks/> public VPair[][] vpairs { get { return this.vpairsField; } set { this.vpairsField = value; } } }
|
Вызов делается так: Код | net.dom1.devctrl.Request po = new net.dom1.devctrl.Request(); // создаем объект net.dom1.devctrl.VPair vpa = new net.dom1.devctrl.VPair();// объект для хранения пар ключ-значение
vpa.vp_key = "test_param1"; vpa.vp_value = "test_value1";
net.dom1.devctrl.VPair[][] vp = new net.dom1.devctrl.VPair[1][]; // массив объектов для хранения пар ключ-значение vp[0] = new net.dom1.devctrl.VPair[1] { vpa }; po.vpairs = vp;
net.dom1.devctrl.PrActionServ tt = new net.dom1.devctrl.PrActionServ(); tt.doRequest(po);
|
В запросе получаю следующее: Код | <vpairs href="#id2" /></q2:Request><soapenc:Array id="id2" xmlns:q3="http://soap/provision.xsd" soapenc:arrayType="q3:VPair[][1]"><Item href="#id3" /></soapenc:Array><soapenc:Array id="id3" xmlns:q4="http://soap/provision.xsd" soapenc:arrayType="q4:VPair[1]"><Item href="#id4" /></soapenc:Array><q5:VPair id="id4" xsi:type="q5:VPair" xmlns:q5="http://soap/provision.xsd"><vp_key xsi:type="xsd:string">test_param1</vp_key><vp_value xsi:type="xsd:string">test_value1</vp_value><vp_array xsi:nil="true" /></q5:VPair>
|
В примере к этому веб сервису передача параметров должна проходить след образом Код | vpairs SOAP-ENC:arrayType="ns2:VPArray[1]" xsi:type="ns2:VPArrays"><item SOAP-ENC:arrayType="ns2:VPair[5]" xsi:type="ns2:VPArray"><item xsi:type="ns2:VPair"><vp_key xsi:type="xsd:string">operation</vp_key><vp_value xsi:type="xsd:string">ASK_ADDR_LIST</vp_value><vp_array xsi:nil="true" xsi:type="ns2:VPArray"/></item><item xsi:type="ns2:VPair"><vp_key xsi:type="xsd:string">what</vp_key><vp_value xsi:type="xsd:string">house</vp_value><vp_array xsi:nil="true" xsi:type="ns2:VPArray"/></item><item xsi:type="ns2:VPair"><vp_key xsi:type="xsd:string">city</vp_key><vp_value xsi:type="xsd:string">Саратов</vp_value><vp_array xsi:nil="true" xsi:type="ns2:VPArray"/></item><item xsi:type="ns2:VPair"><vp_key xsi:type="xsd:string">street</vp_key><vp_value xsi:type="xsd:string">леси</vp_value><vp_array xsi:nil="true" xsi:type="ns2:VPArray"/></item><item xsi:type="ns2:VPair"><vp_key xsi:type="xsd:string">house</vp_key><vp_value xsi:type="xsd:string">9</vp_value><vp_array xsi:nil="true" xsi:type="ns2:VPArray"/></item></item></vpairs>
|
+ получаю исключение Код | [InvalidOperationException: The specified type was not recognized: name='VPArray', namespace='http://soap/provision.xsd', at <vpairs xmlns=''>.] System.Xml.Serialization.XmlSerializationReader.GetPrimitiveType(XmlQualifiedName typeName, Boolean throwOnUnknown) +1489 System.Xml.Serialization.XmlSerializationReader.ReadArray(String typeName, String typeNs) +457 System.Xml.Serialization.XmlSerializationReader.ReadReferencingElement(String name, String ns, Boolean elementCanBeType, String& fixupReference) +384 System.Xml.Serialization.XmlSerializationReader.ReadReferencingElement(String name, String ns, String& fixupReference) +15 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderPrActionServ.Read4_Reply() +2531 System.Xml.Serialization.XmlSerializationReader.ReadReferencingElement(String name, String ns, Boolean elementCanBeType, String& fixupReference) +644 System.Xml.Serialization.XmlSerializationReader.ReadReferencingElement(String name, String ns, String& fixupReference) +15 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderPrActionServ.Read7_doRequestResponse() +490 Microsoft.Xml.Serialization.GeneratedAssemb [InvalidOperationException: The specified type was not recognized: name='VPArray', namespace='http://soap/provision.xsd', at <vpairs xmlns=''>.] System.Xml.Serialization.XmlSerializationReader.GetPrimitiveType(XmlQualifiedName typeName, Boolean throwOnUnknown) +1489 System.Xml.Serialization.XmlSerializationReader.ReadArray(String typeName, String typeNs) +457 System.Xml.Serialization.XmlSerializationReader.ReadReferencingElement(String name, String ns, Boolean elementCanBeType, String& fixupReference) +384 System.Xml.Serialization.XmlSerializationReader.ReadReferencingElement(String name, String ns, String& fixupReference) +15 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderPrActionServ.Read4_Reply() +2531 System.Xml.Serialization.XmlSerializationReader.ReadReferencingElement(String name, String ns, Boolean elementCanBeType, String& fixupReference) +644 System.Xml.Serialization.XmlSerializationReader.ReadReferencingElement(String name, String ns, String& fixupReference) +15 Microsoft.Xml.Serialization.GeneratedAssembly.XmlSerializationReaderPrActionServ.Read7_doRequestResponse() +490 Microsoft.Xml.Serialization.GeneratedAssembly.ArrayOfObjectSerializer6.Deserialize(XmlSerializationReader reader) +40 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) +163
[InvalidOperationException: There is an error in XML document (2, 821).] System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) +605 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle) +28 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +1517 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +205 PrActionServ.doRequest(Request po) +50 _Default.Page_Load(Object sender, EventArgs e) in d:\Documents and Settings\programm\Мои документы\Visual Studio 2005\WebSites\WebSite14\Default.aspx.cs:59 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
System.Web.UI.Control.OnLoad(EventArgs e) +73 System.Web.UI.Control.LoadRecursive() +52 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2184 ly.ArrayOfObjectSerializer6.Deserialize(XmlSerializationReader reader) +40 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) +163
[InvalidOperationException: There is an error in XML document (2, 821).] System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle, XmlDeserializationEvents events) +605 System.Xml.Serialization.XmlSerializer.Deserialize(XmlReader xmlReader, String encodingStyle) +28 System.Web.Services.Protocols.SoapHttpClientProtocol.ReadResponse(SoapClientMessage message, WebResponse response, Stream responseStream, Boolean asyncCall) +1517 System.Web.Services.Protocols.SoapHttpClientProtocol.Invoke(String methodName, Object[] parameters) +205 PrActionServ.doRequest(Request po) +50 _Default.Page_Load(Object sender, EventArgs e) in d:\Documents and Settings\programm\Мои документы\Visual Studio 2005\WebSites\WebSite14\Default.aspx.cs:59 System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +43
System.Web.UI.Control.OnLoad(EventArgs e) +73 System.Web.UI.Control.LoadRecursive() +52 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2184
|
Это сообщение отредактировал(а) vovka - 31.8.2010, 10:27
|