我需要在Silverlight中进行深层复制,我可以使用久经考验的序列化/反序列化方法。复制的对象不是精确的克隆 - 他们需要在副本上修改一些属性。
我应该可以这样做:
[OnDeserialized()]
public void OnDeserializedMethod(StreamingContext context)
{
if (context.State == StreamingContextStates.Clone)
{
//stuff
}
}
使用StreamingContext
设置NetDataContractSerializer
:
NetDataContractSerializer ds = new NetDataContractSerializer(new StreamingContext(StreamingContextStates.Clone));
Silverlight没有NetDataContractSerializer
: - (。
那么有什么方法可以设置StreamingContext
DataContractSerializer
给我一些合作的东西吗?我不能盲目地将我的更改应用于每个序列化操作,它只是在副本的特定情况下。
或者,或者,是否有另一种方法可以为(de)序列化过程提供类似的钩子,以便我可以使用数据?
(我已经考虑过实施IDataContractSurrogate
,但是a)这很痛苦,而且b)Silverlight没有其中任何一个......)
答案 0 :(得分:1)
我得出的结论是你不能这样做,所以我猜一种替代方法是有条理的。