我有一个Web服务,包括以下方法:
[WebMethod]
public void saveDayEntries(List<DayEntry> listofEntries, string language)
{...}
有一个类似的继承层次结构: DayEntry-&GT; DataEntry-&GT; DayEntryLD
还有一个界面,所以我必须参加DayEntry并且不能参加DayEntryLD。
在客户端,我从DayEntryLD类型创建一个数组,并将其发送到Webservice / saveDayEntries,如下所示:
$.ajax({
type: "POST",
url: "DataProviderFD.asmx/saveDayEntries",
contentType: "application/json; charset=utf-8",
dataType: "json",
async: false,
data: "{'listofEntries':" + JSON.stringify(data) + ", 'language': '" + lang + "'}"
});
如果我执行代码,我会收到以下错误: “无法将对象图反序列化为DayEntry类型”
我想我理解这个问题,但我不知道如何解决它。 有任何人对此有经验吗? THX。
答案 0 :(得分:0)
您是否尝试使用XmlInclude属性注释服务方法?您需要为层次结构中的每个派生类型指定此类属性。
[WebMethod]
public void saveDayEntries(List<DayEntry> listofEntries, string language){}
[XmlInclude(typeof(DataEntry))]
[XmlInclude(typeof(DataEntryLD))]
class DayEntry{}