首页 > 解决方案 > 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 实例化为适当的对象。反射?

标签: c#.netjsonasp.net-core

解决方案


推荐阅读