【问题标题】:Annotation for WCF DataContractSerializer to replace ArrayOf with a custom nameWCF DataContractSerializer 用自定义名称替换 ArrayOf 的注释
【发布时间】:2012-03-30 21:42:21
【问题描述】:

我已经使用 .NET 4.0 框架和 MVC 4 和 ApiController 类成功地实现了一个 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。 我该如何解决这个问题?有注释可以帮助我吗?

【问题讨论】:

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


    【解决方案1】:

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

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

    【讨论】:

      猜你喜欢
      • 2010-12-30
      • 1970-01-01
      • 1970-01-01
      • 2015-04-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-07-27
      • 1970-01-01
      相关资源
      最近更新 更多