У меня достаточно ограниченные данные для перемещения между silverlight и службой WCF. Поэтому я создал несколько контрактов на передачу данных. Я надеялся, что смогу использовать одни и те же классы, чтобы использовать их для некоторой ограниченной проверки данных на стороне клиента, без необходимости использования дополнительных ресурсов DTO и прочего.
У меня есть контракт примерно такой:
[DataContract]
class MyObject
{
private String _id;
[DataMember]
public String ID
{
get
{
return _id;
}
set
{
_id = value;
DoStuff();
}
}
Теперь, когда я десериализую объект, будет запущен сеттер. Это установит закрытую переменную _id, что хорошо. Но я не хочу, чтобы DoStuff () запускался при десериализации.
Я надеялся использовать атрибуты [OnDeserializing] и [OnDeserialized]. Я мог бы определить флаг bool, который мог бы использовать для управления тем, что запускается в сеттере. Это на самом деле работает на стороне сервера, но Silverlight не имеет этих атрибутов.
Есть предложения?