Модераторы: gambit
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> передача параметров в веб сервис, проблема с передачей массива 
:(
    Опции темы
vovka
Дата 31.8.2010, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 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
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
Любитель
Mymik
mr.DUDA

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Любитель, Mymik, mr.DUDA.

 
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Разработка под ASP.NET | Следующая тема »


 




[ Время генерации скрипта: 0.0725 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.