想象一个简单的控制器动作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"}
]
如何解决这个问题?