到目前为止,我一直在使用DataContractSerializer
从XML文件中读取域数据。这只是为了开始 - 我将在适当的时候进入数据库。有许多具有很多属性的域类,因此使用特定于XML反序列化的属性来装饰所有这些属性只是暂时的,这是不可取的。到目前为止,我已经完成了工作而无需这样做。
我刚刚将基类从域模型名称空间/程序集移动到公共名称空间/程序集中,因为它适用于其他解决方案。这导致反序列化中断。仍然会创建对象,但基类上没有设置任何内容。起初我以为我可以简单地通过在调用它的DataContractSerializer
方法之前将最近移动的基类型作为“已知类型”传递给ReadObject
的构造函数来解决这个问题。但这没有用。
恢复命名空间,但将其保留在其他程序集中会使问题消失。但显然这不是一个可以接受的解决方案。无论如何,这意味着问题是不同的命名空间。
那么我该怎样做才能使反序列化再次起作用(除了移回基类或插入大量属性)?