Аннотация для WCF DataContractSerializer для замены ArrayOf пользовательским именем - PullRequest
1 голос
/ 14 марта 2012

Я успешно реализовал RESTful Web Service, используя .NET 4.0 framework с MVC 4 и классом ApiController.У меня есть метод, скажем, GetMovies ("/ api / movies"), который возвращает IQueryable<Movie>.Конечно, сериализация выполняется с использованием DataContractSerializer.Проблема в названии возвращаемого списка, потому что это ArrayOfMovie:

<ArrayOfMovie>
    <Movie></Movie>
    <Movie></Movie>
    ...
    <Movie></Movie>
</ArrayOfMovie>

Я не могу создать собственный класс, скажем, Movies, и добавить аннотацию [CollectionDataContract(Name = "movies")] (как предложено).на https://stackoverflow.com/a/4593167/801065), потому что я не могу расширить IQueryable без реализации всех его методов. И мне, безусловно, нужен IQueryable для обработки OData / jQuery. Как я могу решить эту проблему? Есть ли аннотация, которая может мне помочь?

1 Ответ

0 голосов
/ 28 мая 2012

Это решение, которое я нашел.Вам нужно поместить групповой класс в основной класс, который вы хотите сериализовать.

[DataContract(Name = "movies")]
public class group
{
    [DataMember(Name="movies")]
    public IQueryable<Movie> Movies;
}
...