首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >.NET 6最小api -返回接口

.NET 6最小api -返回接口
EN

Stack Overflow用户
提问于 2022-06-06 20:24:02
回答 1查看 147关注 0票数 1

我很难用新的最小Api返回一个接口。让我们假设以下简单的场景:

代码语言:javascript
复制
interface ICar {
    public string PropA {get; set; }
}

class CarExample : ICar {
  public string PropA {get; set; }
  public string PropB {get; set; }
}

app.MapGet("/car", async ([FromServices] ICarRepository carRepository, int carId)
{
    var car = await carRepository.GetCarByIdAsync(carId);
    return car;
})

carRespository返回ICar作为结果。不幸的是,Json结果没有ProbB。铸造不是一个选择,因为我不知道确切的汽车。

EN

回答 1

Stack Overflow用户

发布于 2022-06-06 20:30:31

一种选择是将car转换为object

代码语言:javascript
复制
app.MapGet("/car", async ([FromServices] ICarRepository carRepository, int carId) =>
{
    ...
    return (object)car;
});

我几乎可以肯定,这是由于System.Text.Json在序列化过程中处理泛型的方式:

代码语言:javascript
复制
ICar car = ...;
var serialize = JsonSerializer.Serialize(car); // contains only ICar props
var serialize1 = JsonSerializer.Serialize<object>(car); // contains all props

多态序列化文档

票数 4
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72523105

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档