Веб-сервис.NET не может создать временный класс

Я пытаюсь создать экземпляр веб-службы в моем веб-приложении.NET. Но как только он попадает в эту строку:

registerService register = new registerService();

Тогда я получаю следующую ошибку:

Невозможно создать временный класс (результат =1). ошибка CS0030: невозможно преобразовать тип "Test.Website.ProxyTest.registerType[]" в "Test.Website.ProxyTest.registerType"

Я не писал веб-сервис. Но значит ли это, что веб-сервис имеет ошибку где-то (в XSD или что-то в этом роде)?

Означает ли это, что сторонним разработчикам нужно исправить этот веб-сервис?

1 ответ

Решение

Кажется, это известная проблема, и подробности можно найти здесь

Причина. Известная проблема с WSDL.EXE, включенным в.NET Framework, может привести к неправильной генерации прокси-класса, если массив сложного типа содержит элемент, который также является массивом сложного типа, для которого существует только один элемент.

,

В настоящее время нет доступного разрешения, однако есть три доступных решения:

Сгенерируйте прокси-класс вручную, используя WSDL.EXE, а затем измените прокси-класс, в котором тип данных был неправильно создан как двумерный массив (например, "CustomType[][]"), и исправьте его как одномерный массив (например, 'CustomType[]'). Измените тип данных в желаемом WSDL, чтобы второй, необязательный элемент был включен в определение. Это можно сделать, добавив такой элемент, как ''. Измените сложный тип в желаемом WSDL, чтобы граничные атрибуты были частью сложного типа, а не элементом (т.е. переместите атрибуты "minOccurs" и "maxOccurs" в сложный тип и удалите их из элемента).

Подобный вопрос stackru

Другие вопросы по тегам