首页 新闻 会员 周边

在WebService中序列化datatable对象疑问

0
悬赏园豆:30 [已解决问题] 解决于 2008-12-22 22:16

由于项目升级到.NET3.5框架下,要在整体实现方法不变的情况下,处理WebService中序列化datatable对象。现在需要解决在.net3.5框架下序列化出来得数据跟在.net2.0框架下序列化出来得数据格式需要一致。该问题没有找到合适的解决方案。欢迎大家讨论。谢谢!

在.NET3.5框架下,WebService中序列化datatable对象。序列化后的数据中出现多了个“d”属性。如下:

{"d":" {\"__type\":\"SFCity.Entities.CBS_Employee, SFCity.Entities, Version=3.2.13.7, Culture=neutral, PublicKeyToken=null\",\"ID\":\"0bf732c7-d8c2-4955-9262-d3c87fad61b1\", \"FEmployeeID\":\"00002\",\"FName\":\"小李\",\"FBranch\":\"AJ\",\"FStation \":\"业务员\",\"FDuty\":\"部门经理\",\"FPlace\":\"福州\",\"FEmail\":\"\", \"FProvince\":\"14:::湖北省\",\"FCity\":\"161:::武汉\",\"FAddress\":\"hhhhhh \"}"}

.在.net2.0时,WebService中序列化datatable对象。序列化后的数据为:"{\"__type\": \"SFCity.Entities.CBS_Employee, SFCity.Entities, Version=3.2.13.7, Culture=neutral, PublicKeyToken=null\",\"ID\":\"0bf732c7-d8c2-4955-9262-d3c87fad61b1\", \"FEmployeeID\":\"00002\",\"FName\":\"小李\",\"FBranch\":\"AJ\",\"FStation \":\"业务员\",\"FDuty\":\"部门经理\",\"FPlace\":\"福州\",\"FEmail\":\"\", \"FProvince\":\"14:::湖北省\",\"FCity\":\"161:::武汉\",\"FAddress\":\"hhhhhh \"}"

在web.config配置文件如下:

Code

在DataTableConverter类源码如下:

Code

在客户端是用EXTJS2.2版本实现的如下:

Code

 

 

 

seeker的主页 seeker | 初学一级 | 园豆:5
提问于:2008-12-19 12:04
< >
分享
最佳答案
0

webservice序列化任何东西都会多个d出来的,不是datatable的问题,使用WCF就不会了

Gray Zhang | 专家六级 |园豆:17610 | 2008-12-19 13:29
其他回答(2)
0

我看了一下你的代码,我觉的,你的转换器没问题,可能就是Dotnet3.5在处理时与2.0有些不同吧,你看一下你的Web.Config文件,对比着3.5下的和2.0下的看看有没有用的程序集版本不一致的地方,如果版本都一致!尤其是一些与joson有关的地方!

GUO Xingwang | 园豆:3885 (老鸟四级) | 2008-12-19 13:15
0

楼主,我碰到你同样的问题

主要问题是,默认vs2008中开发的话,直接是不用再去加任何代码就可以直接使用

js就可以轻松实现调用webservice中的字符串返回函数的东西

一换成datable就不能进行序列化了,webconfig里面加了楼主那样的代码后发现是直接

是js里面找不到webservice那个类了,我觉得主要还是webconfig配置的问题,不知道需要

进行如何配置

王建国 | 园豆:195 (初学一级) | 2008-12-20 23:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册