WCF Сериализация - PullRequest
       9

WCF Сериализация

0 голосов
/ 29 июля 2010

У меня есть такой класс

[DataContract]
public MyClass
{
  private string _Name;
  private bool _NameIsModified = false;

  public string Name;
  {
    get { return _Name; }
    set 
    {
      _Name = value;
      _NameIsModified = true;
    }
  }
}

Когда клиенты запрашивают этот класс через службу WCF, изменяют объекты и отправляют его обратно на сервер, _NameIsModified не устанавливается.(Я полностью вижу, что это происходит).

На сервере и клиенте у меня есть доступ к MyClass.Можно ли извлечь Proxy MyClass и привести его к новому экземпляру MyClass или сделать так, чтобы служба WCF загрузила его непосредственно в экземпляр MyClass.

1 Ответ

0 голосов
/ 29 июля 2010

Нет, вы не можете сделать это напрямую, используя кастинг. Вам придется написать некоторый код на стороне клиента, чтобы клонировать прокси-версию объекта в тот же тип, который используется сервером. (Прокси-классы создаются как частичные классы, поэтому их можно просто расширять).

Альтернативой этому является обеспечение того, чтобы ваша клиентская сторона фактически ссылалась на те же сборки, что и сервер, и после того, как вы это сделаете, вам может понадобиться вручную отредактировать прокси-сгенерированные классы, чтобы удалить дублирующиеся объявления классов.

Как сделать так, чтобы разделение классов между сервером и клиентом было рассмотрено здесь, на SO, я посмотрю, смогу ли я выкопать несколько полезных постов чуть позже.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...