1
我需要在Silverlight中進行深層複製,我可以使用久經考驗的序列化/反序列化方法進行深層複製。複製的對象不是確切的克隆 - 它們需要在副本上修改其某些屬性。如何在Silverlight DataContractSerizer中設置StreamingContext?
我應該可以做這樣的事情:
[OnDeserialized()]
public void OnDeserializedMethod(StreamingContext context)
{
if (context.State == StreamingContextStates.Clone)
{
//stuff
}
}
其中StreamingContext
設置使用NetDataContractSerializer
:
NetDataContractSerializer ds = new NetDataContractSerializer(new StreamingContext(StreamingContextStates.Clone));
Silverlight不具有NetDataContractSerializer
雖然:-(。
那麼有什麼辦法可以在DataContractSerializer
上設置StreamingContext
來給我一些東西給我rk與?我不能盲目地將我的更改應用於每一個序列化操作,它只是針對副本的特定情況。
或者,還有另一種方法可以讓我在(反)序列化過程中有類似的鉤子,因此我可以使用這些數據?
(我已經研究過推行IDataContractSurrogate
但)這是痛苦和b)Silverlight不具備其中的一個要麼...)