如何解决如何使用ActionResult发送抽象类型的Collection
我正在尝试使用abstract
在Controller
中发回ActionResult
类型的集合。我不知道如何告诉序列化器还包括特定的派生类型属性:
public abstract class Base
{
public int Id{get;set;}
}
public class D1:Base
{
public string D1Value{get;set;}
}
public class D2:Base
{
public bool IsD2Value{get;set;}
}
public async Task<ActionResult<IEnumerable<Base>>> GetAll()
{
var collection=new []{ new D1 { Id=1,D1Value="hi"},new D2 {Id=2,IsD2Value=true}};
return StatusCode(200,collection);
}
如何以一种简单而优雅的方式获得此结果。我已经检查了JsonSerializer
选项,但就我而言,我不是进行序列化的人。
我得到的
[{ "Id":1},{ "Id":2 }]
我想要的
[{ "Id":1,"D1Value":"hi" },{ "Id":2,"IsD2Value":true }]
解决方法
尝试以下代码:
public async Task<ActionResult<IEnumerable<Base>>> GetAll()
{
var collection = new List<object>()
{
new D1 { Id = 1,D1Value = "hi" },new D2 { Id = 2,IsD2Value = true }
};
return StatusCode(200,collection);
}
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。