WCF DataContractSerializer的注释,用自定义名称替换ArrayOf

时间:2012-03-14 12:18:38

标签: asp.net-mvc annotations iqueryable datacontractserializer asp.net-mvc-4

我使用带有MVC 4和ApiController类的.NET 4.0框架成功实现了RESTful Web服务。 我有一个方法,让我们说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它的方法。我绝对需要一个用于OData / jQuery处理的IQueryable。 我怎么解决这个问题?是否有可以帮助我的注释?

1 个答案:

答案 0 :(得分:0)

这是我找到的解决方案。 您需要在要序列化的主类中放置一个组类。

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