Вызов веб-сервиса из 64-битного приложения возвращает массив вместо одного объекта - PullRequest
0 голосов
/ 05 апреля 2019

Я работаю над обновлением приложения Winforms с 32- до 64-битного, и все прошло довольно хорошо, но я столкнулся с проблемой при обращении к стороннему веб-сервису.

При запуске приложения в 32-битном режиме определенный веб-метод возвращает объект, но при вызове метода из того же приложения в 64-битном режиме он, похоже, возвращает массив объекта.

System.ServiceModel.CommunicationException: «Произошла ошибка в Сериализация тела сообщения: «Невозможно создать временный класс (Результат = 1). ошибка CS0030: невозможно преобразовать тип 'DDI.DAL.Subscriber.servicedItem []' для Ошибка «DDI.DAL.Subscriber.servicedItem» CS0029: не может быть неявно преобразовать тип 'DDI.DAL.Subscriber.servicedItem' в 'DDI.DAL.Subscriber.servicedItem []

Мне также интересно, что в сообщении об ошибке говорится, что он не может преобразовать тип массива в тип объекта, а также что он не может преобразовать объект в тип массива. Не уверен, почему это будет пытаться оба.

Я попытался обновить Справочник по услугам через Visual Studio, но мои сгенерированные классы не изменились вообще.

Кто-нибудь когда-нибудь видел это? Любые идеи о том, как это исправить? Я чувствую себя в наручниках, потому что звоню в стороннюю службу.

1 Ответ

0 голосов
/ 07 июня 2019

Просматривал SO и понял, что никогда не публиковал ответ на этот вопрос.

Мне пришлось вручную отредактировать сгенерированный класс и сделать свойство двухмерным массивом, чтобы запустить его в 64-битном режиме. Внезапно это сработало. Я связался с поставщиком услуг и предупредил их о проблеме ... не уверен, что они внесут изменения в их конце.

...