В каком-то корпоративном проекте (.NET, WCF) я увидел, что все контракты на обслуживание принимают один параметр Request
и всегда возвращают Response
:
[DataContract]
public class CustomerRequest : RequestBase {
[DataMember]
public long Id { get; set; }
}
[DataContract]
public class CustomerResponse : ResponseBase {
[DataMember]
public CustomerInfo Customer { get; set; }
}
где RequestBase/ResponseBase
содержат общие вещи, такие как ErrorCode, Context и т.д. Тела как методов обслуживания, так и прокси-серверов обернуты в try/catch, поэтому единственный способ проверить наличие ошибок - это смотреть ResponseBase.ErrorCode
(это перечисление).
Я хочу знать, как этот метод вызывается и почему он лучше по сравнению с передачей того, что нужно в качестве параметров метода, и с использованием стандартных механизмов передачи/устранения ошибок WCF?