gpt4 book ai didi

asp.net - ASP.NET Web API 的继承和 JSON 格式化程序

转载 作者:行者123 更新时间:2023-12-04 12:34:49 25 4
gpt4 key购买 nike

想象一个简单的 Controller Action IEnumerable<BaseType> Get() .它返回所有源自 BaseType 的不同类型的枚举。

当客户端请求 XML 时,结果是这样的:

<ArrayOfBaseType>
<BaseType i:type="DerivedType1"><A>value</A></BaseType>
<BaseType i:type="DerivedType2"><B>value</B></BaseType>
<BaseType i:type="DerivedType3"><C>value</C></BaseType>
</ArrayOfBaseType>

可以看到,派生类的类型在 i:type中传递属性。

但是,如果客户端请求 JSON,则缺少此信息:
[
{"A":"value"},
{"B":"value"},
{"C":"value"}
]

如何解决这个问题?

最佳答案

以下更改是必要的:

在 WebApiConfig.cs 中需要添加以下行:

config.Formatters.JsonFormatter.SerializerSettings.TypeNameHandling = 
TypeNameHandling.Auto;

这将自动产生一个新属性 $type需要的时候。

关于asp.net - ASP.NET Web API 的继承和 JSON 格式化程序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12651512/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com