【发布时间】:2011-08-21 14:52:55
【问题描述】:
我有一个强类型数据集和一个强类型数据表,我将它传递给我的 wcf 服务。我在这个表上添加了一个额外的列运行时,它不在 xsd 中。
当我在服务器端调试时,wcf 操作接收数据集和数据表,但额外的列及其值不再是它的一部分。
我觉得跟数据集的序列化有关系,但是不强类型列怎么解决这个问题呢?
提前致谢
【问题讨论】:
标签: wcf serialization dataset strongly-typed-dataset
我有一个强类型数据集和一个强类型数据表,我将它传递给我的 wcf 服务。我在这个表上添加了一个额外的列运行时,它不在 xsd 中。
当我在服务器端调试时,wcf 操作接收数据集和数据表,但额外的列及其值不再是它的一部分。
我觉得跟数据集的序列化有关系,但是不强类型列怎么解决这个问题呢?
提前致谢
【问题讨论】:
标签: wcf serialization dataset strongly-typed-dataset
序列化是将内存中的某些对象转换为 XML 的过程,反序列化会将 XML 转换回对象。在这种情况下,该对象的结构由您的强类型数据集决定。
您已经在客户端向对象添加了新内容,但您没有告诉服务器端如何处理这些内容,因此在反序列化 XML 时,多余的内容会被丢弃。
由于您不想强类型化附加数据,您可以从类型化数据表 (foo) 派生一个新类 (bar) 并将元素添加到其中,并使其可序列化,然后在服务器上你反序列化,反序列化到你的派生类。由于派生类 bar 按照定义为 foo,因此数据集应该接受它进行数据操作,但您仍然可以将新元素用作 bar。
【讨论】: