2010-07-29 2 views
0

У меня есть класс, как такWCF сериализация

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

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

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

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

ответ

0

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

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

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

Смежные вопросы