У меня есть веб-сервис WCF, над которым я работаю, и я его построил, и мне было приятно узнать, что я могу использовать в нем сложные типы. Я добавил некоторые из них, а затем понял, что они все еще не могут быть использованы в качестве этих типов на стороне клиента. Это внутренний веб-сервис, поэтому эти типы известны с обеих сторон. Во всяком случае, это не проблема, так как я вынул сложные типы, но я думаю, что это могло оставить некоторые остаточные проблемы.
Когда я изменил свои добавления на все базовые типы (строка, дата, int и т. Д.), А затем добавил веб-сервис в клиентский проект, я получил ошибку «[enumtype] уже определен». Это произошло в файле reference.cs, поэтому я открыл его. Конечно же, были двойные перечисления. Плюс было множество вспомогательных (сериализующих) функций. Дубликат enum был взят из кода, который был там до того, как я выбрал этот веб-сервис для работы. Ранее это не вызывало проблем.
Я открыл файл reference.cs для предыдущего (успешного) обслуживания. У него не было дубликатов или функций, а также я заметил разницу между записями, которые были там. Reference.cs, который не удалось скомпилировать, имел этот дополнительный атрибут в нескольких местах:
[System.ServiceModel.XmlSerializerFormatAttribute ()]
Я также вижу, что мой новый неудачный код использовал строку [], а старый использовал ArrayOfString. Я не намеренно изменил это, но, должно быть, каким-то образом установил что-то другое в процессе.
У кого-нибудь есть несколько подсказок?
Спасибо!