异常信息: The formatter threw an exception while trying to deserialize the message: There was an error while trying to deserialize parameter http://tempuri.org/:GetNewProjectListResult. The InnerException message was ''Element' '_x003C_Province_x003E_k__BackingField' from namespace 'http://schemas.datacontract.org/2004/07/TC.WCF.DALModel.LM' is not expected. Expecting element '_x003C_ProjectdateCus_x003E_k__BackingField'.'. Please see InnerException for more details.
异常根源: 'Element' '_x003C_Province_x003E_k__BackingField' from namespace 'http://schemas.datacontract.org/2004/07/TC.WCF.DALModel.LM' is not expected. Expecting element '_x003C_ProjectdateCus_x003E_k__BackingField'.
这个异常是什么原因呐。。。
序列化错误,翻译成中文就是期望的元素名称是:_x003C_ProjectdateCus_x003E_k__BackingField,而不是 _x003C_Province_x003E_k__BackingField。
这个就是wcf服务返回的数据啊
public IList<LM_ProjectList> GetNewProjectList
这样的错误是什么问题。。。
@Rookier: 如果是返回的数据的话,意思就是服务器返回的数据包含 _x003C_Province_x003E_k__BackingField 字段,而你客户端想得到的是 :_x003C_ProjectdateCus_x003E_k__BackingField 字段。
@Launcher: 还是不明白。。服务器的实体和客户端的实体类用的是同一个model的dll
@Rookier: 也就是说你有个 Model.dll,里面包含了 LM_ProjectList 类型,然后你的客户端和服务端都使用该类型,是吗?
如果是的话,请问你的客户端的代理类是如何编写的?
@Launcher: 是的,
public IList<LM_ProjectList> GetNewLM_ProjectList(int pageIndex, int pageSize, int Folg, int UserId, string strWhere, string strOrder, out int count) { ILM_ProjectList wcf = TC.Framework.Core.WCFProxyFactory.Create<TC.WCF.Contract.LM.ILM_ProjectList>("LM_ProjectList"); IList<LM_ProjectList> list = wcf.GetNewProjectList(pageIndex, pageSize, Folg, UserId, strWhere, strOrder, out count); return list; }
<endpoint address="net.tcp://localhost:8000/LMDbService" binding="netTcpBinding" bindingConfiguration="MyTcpBinding" contract="TC.WCF.Contract.LM.ILM_ProjectList" name="LM_ProjectList" />
@Rookier: ILM_ProjectList 这个也是服务器和客户端共用的同一个 dll 中的接口契约吗?
@Launcher: 嗯,是的==
@Rookier: 那你需要看一下客户端引用的DLL中的 ILM_ProjectList 类型的属性有_x003C_Province_x003E_k__BackingField 还是 _x003C_ProjectdateCus_x003E_k__BackingField ?
然后看一下服务器返回的序列化消息内的有 _x003C_Province_x003E_k__BackingField 还是 _x003C_ProjectdateCus_x003E_k__BackingField ?