WCF REST Xml Ответ на запрос - PullRequest
       17

WCF REST Xml Ответ на запрос

1 голос
/ 06 декабря 2010

У меня есть служба WCF REST, которая предоставляет пару дюжин объектов и основана на вызовах маршрутизации в формате url, используя 3 разных метода.Например:

Protected Function [get](ByVal objType As String, ByVal id As String, ByVal propertyList As String, ByVal token As String) As Object

Каждый из этих методов возвращает Object или BaseObj (от которого наследуются все возвращаемые нами типы).Однако в конечном итоге проблема заключается в том, что при просмотре XML я получаю обертку типа:

<ArrayOfBaseObj xmlns="http://objects/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <BaseObj i:type="Event">
        <!-- Event object details -->
    </BaseObj>
</ArrayOfBaseObj>

вместо элементов, напечатанных так же, как реальный возвращаемый объект, например:

<ArrayOfEvent xmlns="http://objects/" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
    <Event>
        <!-- Event object details -->
    </Event>
</ArrayOfEvent>

Есть ли способ заставить сериализатор XML использовать имя типа для элементов переноса, а не базовый тип?JSON, по-видимому, возвращает тип правильно, это всего лишь сериализация xml, в которой я не совсем в восторге.

1 Ответ

0 голосов
/ 10 декабря 2010

Вам необходимо добавить атрибут [CollectionDataContract]. Проверьте статью http://msdn.microsoft.com/en-us/library/dd203052.aspx для получения дополнительной информации.

...