Мне нужно сделать глубокое копирование в 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
, чтобы дать мне что-то для работы? Я не могу просто слепо применять свои изменения к каждой операции сериализации, это касается только конкретного случая копии.
Или, альтернативно,Есть другой метод, который дает мне аналогичные зацепки в процессе (де) сериализации, чтобы я мог играть с данными?
(я смотрел на реализацию IDataContractSurrogate
, но а) это было больно и б) Silverlight не делаету меня тоже нет этого ...)