svcutil wsdl Ошибка: имя типа: в свойстве: «Имя» типа: «System.CodeDom.CodeNamespace» не является допустимым независимым от языка именем типа - PullRequest
0 голосов
/ 10 апреля 2019

Когда я использую инструмент метаданных Service Model, я получаю следующую ошибку

svcutil wsdl Ошибка: Имя типа: в свойстве: "Имя" из Тип: "System.CodeDom.CodeNamespace" не является допустимым имя типа, не зависящее от языка.

когда я выполняю следующую строку

svcutil my.wsdl /n:*,"www.abc.com/x" /out:my.cs

пространство имен "/ x" является источником ошибки, но я не могу ее исправить. Я могу изменить пространство имен в исходном документе на «www.abc.com», и оно работает, без ошибок, но это не решение, поскольку я не являюсь владельцем исходного wsdl и не могу изменить его на то, что мне нравится.

1 Ответ

1 голос
/ 10 апреля 2019

Как указано DavidG www.abc.com/x не является допустимым пространством имен

служебная программа метаданных ServiceModel (Svcutil.exe)

Указывает сопоставление targetNamespace схемы WSDL или XML с CLR. Пространство имен . Использование '*' для targetNamespace отображает все targetNamespaces без явного сопоставления с этим пространством имен CLR.

Чтобы убедиться, что имя контракта сообщения не конфликтует с имя операции, вы должны либо квалифицировать ссылку на тип с помощью ::, или убедитесь, что имена уникальны.

По умолчанию: получено из целевого пространства имен документа схемы для Контракты на данные. Пространство имен по умолчанию используется для всех других сгенерированных типы.

Краткая форма: / n Примечание. При создании типов для использования с XmlSerializer поддерживается только одно сопоставление пространства имен. Все сгенерированные типы будут либо в пространстве имен по умолчанию, либо в пространстве имен, указанном '*'.

...