假设我有以下模型:
AnimalModel
DogModel : AnimalModel
CatModel : AnimalModel
ElephantModel : AnimalModel
我想在我的 Web 服务中将 List 作为 JSON 对象返回......我怎样才能做到最好?
请记住,通过上面的排序,ElephantModel 继承自 AnimalModel,但显然包含 AnimalModel 没有的不同类成员。(即TrunkSize),我认为这是导致错误的原因。
现在我有:
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "?query={query}")]
List<AnimalModel> Animals (string query);
[WebGet(BodyStyle = WebMessageBodyStyle.Wrapped, UriTemplate = "?query={query}")]
ElephantModel Elephant (string query);
如果我只是创建一个像 List 这样的函数并尝试将其发送回来,它似乎会出现问题。如果我先将它序列化为 JSON 字符串,它会传递该字符串——但随后我必须再次解析它。
但是,如果我只为 ElephantModel 或 CatModel 执行此操作,则效果很好!不需要序列化,另一端不需要解析......就像冠军一样工作。
当我尝试发送子模型继承的模型列表时,它会中断。但是,如果我可以将它序列化为适当的 JSON 字符串、发送它并接收该字符串以进行解析,那么我必须做一些更好的事情!
我怎样才能做到这一点?