2011-08-03 25 views
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不具備其中的一個要麼...)

回答

0

我得出的結論是,你不能這樣做,所以我想一個替代方法是爲了。

相關問題