哪个个高手能不能解析一下这个原因是怎么产生的 开发模式:客户端+webservice在本机环境系统,没有问题。部署到服务器那边就出问题了原因是:webservice: 由于数据量大,传输过程把dataset转换为序列化为流压缩进行传输,在web 端: 在反序列化时候,将流反序列化为dataset时候,将null反序列化为datetime时候,null被赋值成datetime最小值,元年 0001/1/1号;注意这个过程反序列化为dateset,反序列化这个组件总是通用的吧。用replace这个方案不可行,还有nullable类型也是不行,因为反序列化为dataset过程是系统自动执行的 BinaryFormatter;主要我要知道那些环境因素产生这个问题;哪个仁兄,master在哪里
2 回答
紫衣仙女
TA贡献1839条经验 获得超15个赞
DateTime是值类型,肯定不能赋值为null的,那只能赋为default (DateTime)值,默认也就是default值。
奇怪的是,你如何将null赋给datetime?
另DataTable中的值为空时,那应该为System.Data.DBNull,就算序列化了,再反序列化也应该还是DBNull。
实测结果,不管是XmlSerialize还是BinarySerialize也都不会将DBNull改成别的值。
问题不在序列化反序列化上,肯定有其它原因。
陪伴而非守候
TA贡献1757条经验 获得超8个赞
应该是Nullable<DateTime>
感觉不太好改,不能将就着用啊,呵呵,判断为空的时间改成判断时间最小~~
真要改可能要重写一个BinaryFormatter,自定义对dateset序列化,应该也不难
- 2 回答
- 0 关注
- 855 浏览
添加回答
举报
0/150
提交
取消