DataContractSerializer在不具有属性的不同命名空间中具有基类

时间:2014-01-13 07:50:03

标签: c# datacontractserializer

到目前为止,我一直在使用DataContractSerializer从XML文件中读取域数据。这只是为了开始 - 我将在适当的时候进入数据库。有许多具有很多属性的域类,因此使用特定于XML反序列化的属性来装饰所有这些属性只是暂时的,这是不可取的。到目前为止,我已经完成了工作而无需这样做。

我刚刚将基类从域模型名称空间/程序集移动到公共名称空间/程序集中,因为它适用于其他解决方案。这导致反序列化中断。仍然会创建对象,但基类上没有设置任何内容。起初我以为我可以简单地通过在调用它的DataContractSerializer方法之前将最近移动的基类型作为“已知类型”传递给ReadObject的构造函数来解决这个问题。但这没有用。

恢复命名空间,但将其保留在其他程序集中会使问题消失。但显然这不是一个可以接受的解决方案。无论如何,这意味着问题是不同的命名空间。

那么我该怎样做才能使反序列化再次起作用(除了移回基类或插入大量属性)?

0 个答案:

没有答案