次のクラスがあるとします。
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
からA.B.C
に変更したところ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 ストア アプリ) も試しましたが、それでも何もしませんでした。
デシリアライゼーションを修正するにはどうすればよいですか?