首页 > 解决方案 > Api 控制器在反序列化时忽略 DataMember

问题描述

我有一个带有 ItemId 属性的 CaptionDto 类。在序列化此对象以返回浏览器时,我希望 ItemId 名称更改为 TranslationId,反之亦然。我的问题是它仅适用于序列化阶段,但不适用于反序列化阶段。

    [DataContract]
    public class CaptionDto
    {
        [DataMember]
        public System.Guid Id { get; set; }
        [DataMember(Name = "TranslationId", IsRequired =true)]
        public System.Guid ItemId { get; set; }
        [DataMember]
        public long StartTimeMilisec { get; set; }
        [DataMember]
        public long EndTimeMilisec { get; set; }
        [DataMember]
        public string FirstLine { get; set; }
        [DataMember]
        public string SecondLine { get; set; }
   }
   
   
     [HttpGet]
        public async Task<IHttpActionResult>  Get(itemId)
        {
            var captionDtos = await getByItemId(itemId)
            //Serialize works fine and ItemId does change to TranslationId
            return Ok(captionDtos);
        }
       
        [HttpGet]
        public IHttpActionResult Get(CaptionDto captionDto)
        {
          //Here captionDto doesn't contains the ItemId altough it is being sent
        }
       
       

标签: c#asp.net-web-apidto

解决方案


推荐阅读