WCF を使用してシリアル化しようとしているかなり複雑なオブジェクト モデルがあります。サーバーで新しいインスタンスを作成してクライアントに返すことができるという問題が発生しています。その後、同じオブジェクトを戻そうとしたり、DataContractSerializer を使用してシリアル化しようとすると、例外がスローされます。
テスト メソッド Server.Service.Test.SerializationTest.TestFilingSerialization が例外をスローしました: System.Runtime.Serialization.SerializationException: MyNameSpace.MyObject 型のオブジェクトを逆シリアル化中にエラーが発生しました。タイプ '' のプロパティ '' の set メソッドがありません
欠落しているセッターに関する情報は提供されません。欠落しているセッターの継承階層を調べてみましたが、これを渡すことができないようです。 MyObjectは、シリアル化しようとしているオブジェクトのプロパティのタイプです。ここで面白い部分があります。そのプロパティのセッターには、次のようなコードがあります。
set
{
_backingField = value;
_backingField.IsDirtyManager.SetIsDirty();
NotifyPropertyChanged("MyProperty");
if (!ContainsType(_backingField.GetType()))
{
Aggregates.Add(_backingField);
}
}
Aggregates.Add をコメントアウトすると、次のプロパティに移動し、そこで同じ例外がスローされます。キッカーは、同じコードで他のプロパティを通過してから、これにヒットして死ぬので、何がわからないのですか?問題が発生する可能性があります。
プロパティ名とタイプが例外に入力されていないため、実際のエラーが発生した経験は誰にでもあるため、エラーは別のものでなければならないようです。クライアントで新しいインスタンスを作成するだけなら、問題なくデシリアライズおよびシリアライズできます。何を探すべきかについてのアイデアはありますか?
編集
私は文字通りこれだけをやっています:
- インスタンスを作成
- シリアライズ
- 逆シリアル化
- 再シリアル化
- ここで死ぬ