c# - 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
}
解决方案
推荐阅读
- python - tf.keras 卷积架构不起作用
- html - Bootstrap 输入背景不覆盖整个输入
- r - lm 的系数太多
- tensorflow - 为 LSTM RNN 预测时间序列动态找到正确的时间步长
- ruby-on-rails - 在 Rails API 响应中获取未找到记录的部分原始 SQL
- r - 如何在 R 中制作数组矩阵?
- java - 如何通过字节码分析收集常量表达式的用法?
- html - 表格无法居中和最大宽度
- javascript - TypeError:无法读取未定义 Express 的属性“使用”
- botframework - Microsoft Teams Bot 未将消息编辑/删除事件发送到 bot 消息传递端点