使用DataContractSerializer序列化DataSet时保留DataRowState
由于各种原因,我不得不将类型化数据集发送到WCF服务端点。除了在反序列化时,每个DataTable中每行的RowState设置为“Added”,无论它们在客户端上是什么,这都可以正常工作。如果我将序列化流写入文件,我看到RowState不是序列化数据的一部分。如何添加它以便我可以跨服务边界保留RowState?并不是说我认为这很重要,但是当服务进程运行.net 4.0时,客户端进程正在运行.net 3.5
没有找到相关结果
已邀请:
2 个回复
徐百晴墓斜
属性的代码:
正如您所看到的,您可能无法对其值进行任何操作,因为它是计算而不是仅存储。最简单的解决方案可能是将另一列添加到包含行状态的DataSet中。 (为什么它总是计算出添加的值?很可能是因为当序列化数据集在服务器上重新水化时,会创建新行并将其添加到数据集中 - 因此值非常真实。如果您遵循上述建议要向数据集添加另一列,这将需要更改服务器代码才能检查和处理它 - 如果您要进行那种更改,那么可能值得做整件事并重新编写该服务使用适当的可序列化DTO代替?)。
才脊烽馈低
“手动”序列化对象:
反序列化时,对象处于与以前完全相同的状态,包括rowstate数据。