Silverlightで詳細なコピーを行う必要があります。これは、シリアライズ/デシリアライズのアプローチを試してみることで可能です。コピーされたオブジェクトは正確なクローンではありません。コピーでプロパティの一部を変更する必要があります。SilverlightのDataContractSerizerでStreamingContextを設定するにはどうすればよいですか?
私はこのような何かを行うことができるはず:StreamingContext
を使用して設定されている
[OnDeserialized()]
public void OnDeserializedMethod(StreamingContext context)
{
if (context.State == StreamingContextStates.Clone)
{
//stuff
}
}
NetDataContractSerializer
:
NetDataContractSerializer ds = new NetDataContractSerializer(new StreamingContext(StreamingContextStates.Clone));
シルバー:-(しかしNetDataContractSerializer
を持っていません。
DataContractSerializer
にStreamingContext
を設定する方法はありますかrkと?私は盲目的にすべてのシリアライズ操作に自分の変更を適用することはできません。それはコピーの特定のケースのみです。
あるいは、(デ)シリアライゼーションプロセスに同様のフックを与えるもう1つの方法がありますので、データを再生できますか?
(私はIDataContractSurrogate
を実装するに見てきたが、a)は、それは苦痛だったと、b)Silverlightは、それらのいずれか...のいずれかを持っていません)