webservice dataset传输过程中datetime问题(难度比较大)

哪个个高手能不能解析一下这个原因是怎么产生的  
开发模式:客户端+webservice
在本机环境系统,没有问题。部署到服务器那边就出问题了
原因是:
webservice: 由于数据量大,传输过程把dataset转换为序列化为流压缩进行传输,
在web 端: 在反序列化时候,将流反序列化为dataset时候,将null反序列化为datetime时候,null被赋值成datetime最小值,元年 0001/1/1号;

注意这个过程反序列化为dateset,
反序列化这个组件总是通用的吧。用replace这个方案不可行,还有nullable类型也是不行,因为反序列化为dataset过程是系统自动执行的 BinaryFormatter;


主要我要知道那些环境因素产生这个问题;
哪个仁兄,master在哪里

慕容森
浏览 852回答 2
2回答

紫衣仙女

DateTime是值类型,肯定不能赋值为null的,那只能赋为default (DateTime)值,默认也就是default值。奇怪的是,你如何将null赋给datetime?另DataTable中的值为空时,那应该为System.Data.DBNull,就算序列化了,再反序列化也应该还是DBNull。实测结果,不管是XmlSerialize还是BinarySerialize也都不会将DBNull改成别的值。问题不在序列化反序列化上,肯定有其它原因。

陪伴而非守候

应该是Nullable<DateTime>感觉不太好改,不能将就着用啊,呵呵,判断为空的时间改成判断时间最小~~真要改可能要重写一个BinaryFormatter,自定义对dateset序列化,应该也不难
打开App,查看更多内容
随时随地看视频慕课网APP