我很难用新的最小Api返回一个接口。让我们假设以下简单的场景:
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。铸造不是一个选择,因为我不知道确切的汽车。
发布于 2022-06-06 20:30:31
一种选择是将car转换为object
app.MapGet("/car", async ([FromServices] ICarRepository carRepository, int carId) =>
{
...
return (object)car;
});我几乎可以肯定,这是由于System.Text.Json在序列化过程中处理泛型的方式:
ICar car = ...;
var serialize = JsonSerializer.Serialize(car); // contains only ICar props
var serialize1 = JsonSerializer.Serialize<object>(car); // contains all props见多态序列化文档。
https://stackoverflow.com/questions/72523105
复制相似问题