У меня есть контракт на обслуживание, который определяет метод с параметром типа System.Object (xs: anyType в WSDL). Я хочу иметь возможность передавать простые типы, а также сложные типы в этом параметре. Простые типы работают нормально, но когда я пытаюсь передать сложный тип, определенный в моем WSDL, я получаю эту ошибку:
Элемент 'http://tempuri.org/:value' содержит данные контракта данных * http://schemas.datacontract.org/2004/07/MyNamespace:MyClass'. Десериализатор не знает ни одного типа, который соответствует этому контракту. Добавьте тип, соответствующий «MyClass», в список известных типов, например, с помощью атрибута KnownTypeAttribute или добавив его в список известных типов, передаваемых DataContractSerializer.
Добавление его как известного типа не помогает, потому что он уже есть в моем WSDL. Как я могу передать объект сложного типа через параметр "xs: anyType"?
Подробнее:
Я считаю, что это работает при использовании NetDataContract, но я не могу использовать это, потому что мой клиент Silverlight.
Я видел ссылки на сложные типы, явно расширяющие xs: anyType, но я не знаю, как заставить WCF генерировать WSDL, который делает это, и я не знаю, поможет ли это или нет.
Спасибо