|
[Search] Поиск   [Recent Topics] Последние темы   [Hottest Topics] Горячие темы   [Members]  Список участников   [Groups] На главную страницу 
[Register] Регистрация / 
[Login] Вход 
CheckShipmentRegionalization. Ошибки при создании XmlSerializer  XML
Индекс форума » Компонент МЕРКУРИЙ
Автор Сообщение
slava

[Avatar]

Зарегистрирован: 03/10/2017 07:15:47
Сообщений: 24
Оффлайн

Добрый день!
Работаем в C# с WSDL.
Отправляю запрос на получение списка условий регионализации, ответ приходит, но при попытке его распознать вылетают ошибки (при создании Serializer).

XmlSerializer serializer = new XmlSerializer(checkShipmentRegionalizationResponse.GetType());

Ошибки следующие:
Невозможно создать временный класс (результат=1).
error CS0030: Преобразование типа "MercuryTest.ApplicationService.RegionalizationCondition[]" в "MercuryTest.ApplicationService.RegionalizationCondition" невозможно
error CS0029: Неявное преобразование типа "MercuryTest.ApplicationService.RegionalizationCondition" в "MercuryTest.ApplicationService.RegionalizationCondition[]" невозможно

Похоже проблема с двумерным массивом (class RegionalizationRequirement).

[System.Xml.Serialization.XmlArrayAttribute(Order=2)]
[System.Xml.Serialization.XmlArrayItemAttribute("condition", typeof(RegionalizationCondition), IsNullable=false)]
public RegionalizationCondition[][] conditionGroup {
get {
return this.conditionGroupField;
}
set {
this.conditionGroupField = value;
this.RaisePropertyChanged("conditionGroup");
}
}

Кто-нибудь сталкивался с этим? Как решили проблему?

Это сообщение было редактировано 2 раз. Последнее обновление произошло в 16/01/2018 12:11:48

Shooshpanius


Зарегистрирован: 11/12/2017 19:29:12
Сообщений: 28
Оффлайн

За данную функцию не скажу, но в целом нормально работать получается только с wsdl справочных сервисов.
По подсистеме обработки заявок - вообще полный ппц. Типы документов в wsdl описаны, но в ответе они приведены в тип Any и если на ruby все замечательно, из savon возвращается полноценный, готовый к обработке объект, то на c# этот Any во вменяемый объект из wsdl уже не получится прямо преобразовать. Приходится конвертить в json и далее просто отдавать его sql серверу, так проще.

В вашем же случае проще сначала получить объект и посмотреть что вернулось. Скорее всего RegionalizationCondition возвращается типом List, а в описании wsdl это одиночная запись.
slava

[Avatar]

Зарегистрирован: 03/10/2017 07:15:47
Сообщений: 24
Оффлайн

Надоело искать решение, переписал для одномерных массивов (добавил RegionalizationConditionGroup ручками).
Работает.
alexey-zmey

[Avatar]

Зарегистрирован: 28/06/2018 16:18:43
Сообщений: 201
Оффлайн

Shooshpanius wrote:За данную функцию не скажу, но в целом нормально работать получается только с wsdl справочных сервисов.
По подсистеме обработки заявок - вообще полный ппц. Типы документов в wsdl описаны, но в ответе они приведены в тип Any и если на ruby все замечательно, из savon возвращается полноценный, готовый к обработке объект, то на c# этот Any во вменяемый объект из wsdl уже не получится прямо преобразовать. Приходится конвертить в json и далее просто отдавать его sql серверу, так проще.

В вашем же случае проще сначала получить объект и посмотреть что вернулось. Скорее всего RegionalizationCondition возвращается типом List, а в описании wsdl это одиночная запись.



Я решил эту проблему переопределив классы ApplicationDataWrapper и ApplicationResultWrapper. Если интересно, обращайтесь - подскажу.

А вот с RegionalizationConditionGroup не получилось.

Это сообщение было редактировано 1 раз. Последнее обновление произошло в 03/07/2018 12:55:34

alexey-zmey

[Avatar]

Зарегистрирован: 28/06/2018 16:18:43
Сообщений: 201
Оффлайн

slava wrote:Надоело искать решение, переписал для одномерных массивов (добавил RegionalizationConditionGroup ручками).
Работает.


А не подскажете как добавить RegionalizationConditionGroup ручками?

у меня не получилось...
reshin

[Avatar]

Зарегистрирован: 06/04/2018 10:56:58
Сообщений: 15
Оффлайн

alexey-zmey wrote:
slava wrote:Надоело искать решение, переписал для одномерных массивов (добавил RegionalizationConditionGroup ручками).
Работает.


А не подскажете как добавить RegionalizationConditionGroup ручками?

у меня не получилось...


 
Индекс форума » Компонент МЕРКУРИЙ
Перейти:   

Powered by JForum 2.1.8 © JForum Team