Изображение, если хотите, следующий сценарий:
- BusinessObjects.dll содержит класс «BusinessObject»
- Ссылки WinClient BusinessObjects.dll
- Ссылки на веб-службы BusinessObjects.dll
Веб-сервис имеет метод:
public BusinessObject GetBusinessObject()
{
BusinessObject result = new BusinessObject;
result.Name = "MyBusinessObject";
return result;
}
Этот метод вызывается WinClient.
Когда я добавлю ссылку на WebService, будет создан прокси-класс. Поэтому, если я получаю доступ к BusinessObject из WinClient, вот так:
BusinessObject bObj = service.GetBusinessObject();
тогда bObj НЕ является тем же объектом в BusinessObject.dll, но фактически является прокси.
Существует документальное решение, описанное здесь - http://ryanfarley.com/blog/archive/2004/05/26/737.aspx
Мой вопрос - это хорошая идея? Или объекты, возвращенные из службы ВСЕГДА, должны рассматриваться как простые DTO? Поэтому, если нам нужна логика, мы должны скопировать значения в РЕАЛЬНЫЙ businessObject. Но как насчет производительности, сказавшейся на этом - стоит ли беспокоиться об этом?
Любые отзывы приветствуются, спасибо.