假设我有以下课程:
namespace A.B.C
{
[DataContract]
public Data
{
[DataMember] public int Value1 {get;set;}
[DataMember] public double Value2 {get;set;}
[DataMember] public MyClass Value3 {get;set;}
}
}
namespace X.Y.Z
{
[DataContract]
public Dataset
{
[DataMember] public Data Data1 {get;set;}
[DataMember] public int Data2 {get;set;}
// ...
}
}
我一直Dataset
在使用默认的DataContractSerializer
. 现在,在重构期间,我更改了Data
from A.B.C
to的命名空间,A.B.C.D
反序列化不再起作用:的 DataMembersData
都是 0。
我试图通过将旧命名空间添加到 DataContract 来解决此问题:
namespace A.B.C.D
{
[DataContract(Namespace = "A.B.C")]
public Data
{
[DataMember] public int Value1 {get;set;}
[DataMember] public double Value2 {get;set;}
[DataMember] public MyClass Value3 {get;set;}
}
}
但这并不能解决问题。为了以防万一,我还尝试了干净的重建和重新部署(Windows Store App),但仍然没有。
如何修复反序列化?