c# - JObject 反序列化到接口
问题描述
我的挑战是将请求从主体反序列化到接口实例。这意味着任何请求都实现了该接口,但在它进入控制器操作之前,该请求应该由 JsonConverter 实例化。示例请求是:
"payload":{
"timelineEventType":"Graduation",
"Name":"test",
"IsGraduationPredicted":false,
"GraduationDate":"2020-02-11T14:25:01.2310384Z",
"QualificationId":null,
"QualificationName":"test",
"Grade":"5",
"TimelineEventType":0,
"Subjects":null
}
这个请求的模型是:
public class CreateGraduationEventDto : ITimelineRequest
{
public Guid? InstitutionId { get; set; }
public string Name { get; set; }
public bool IsGraduationPredicted { get; set; }
public DateTime GraduationDate { get; set; }
public Guid? QualificationId { get; set; }
public string QualificationName { get; set; }
public string Grade { get; set; }
public ISet<Subject> Subjects { get; set; }
public TimelineEventType TimelineEventType { get; set; }
}
这个“有效载荷”将成为以下模型的一部分。将有许多创建时间线请求。CreateTimelineEventRequest 是控制器动作的主体。
public class CreateTimelineEventRequest
{
public Guid ProfileId { get; set; }
public Guid TimelineId { get; set; }
public Guid IdentityId { get; set; }
public ITimelineRequest Payload { get; set; }
}
有没有办法使用例如将 ITimelineRequest 实例化为适当的对象。反射?
解决方案
推荐阅读
- html - 书面边框与显示边框
- javascript - 更改具有相同类名的某些 div 的样式
- asp.net-core - 我可以添加 https://www.tiny.cloud/docs/quick-start/ 从我们的本地服务器加载吗
- mysql - 按固定类别选择最高结果,其余为其他
- python - 无法确定关系上的父/子表之间的连接条件
- c# - 如何在 Visual Studio 中禁用快速操作?
- jquery - 第二个 Jquery 脚本没有从加载的 php 结果的选择中执行
- javascript - 创建一个接受整数并生成包含整数对的数组的函数 [a, b] 按 a 和 b 的递增值排序
- python - 错误:恢复损坏文件时无法找到预告片字典
- c# - IIS - 如何在我网站的不同部分提供“服务质量”