2009-10-15 4 views
0

우리는 WCF 작업에서 우리가 호출 할 때마다 클라이언트 정보를 전달할 수있는 상황이 있습니다. 응답 수준에서 성공을 나타내는 필드와 오류 메시지가 필요합니다.WCF 계약에서 Reqest/Response 클래스를 사용하는 것이 좋습니다.

Request 클래스와 Response 클래스를 사용하는 것이 좋습니다. 난 그 WSDL에 문제가 있기 때문에이 OpeationRequest 사용하지 않는 두 가지 작업을

OpeationResponseData Operation(OperationRequestData input);

으로보고 있었다.

각 작업에 필요한 공통 필드가있는 기본 클래스를 갖게됩니다. 예를 들어 :

OperationResonseData : Response 
OperationRquestData : Request 

또 다른 옵션은

Request<T> and Response<T>

이 더 좋은 방법이 있었다 경우, 또는 궁금

을이 문제에 대한 몇 가지 지침이 있다면 ... 사용하는 것입니다

답변

3

WCF의 기본 메시징 아키텍처 the Message class은 이미 이러한 모든 개념을 지원합니다.

  • 각 논리 연산과 함께 전달되어야하는 정보는 헤더를 사용합니다.
  • 오류의 경우 FaultException을 발생 시키거나 오류가있는 사용자 정의 데이터 구조를 반환하려는 경우 FaultException을 발생시킵니다. 오류로 인해 결점이 발생하면 오류가없는 것이 성공을 나타냅니다. 성공에 대한 세부 정보를 반환하려면 작업에서 사용자 지정 데이터 형식을 반환해야합니다. 그렇지 않으면 void 만 반환 할 수 있습니다.

전선을 통해 전송되는 정보에 대한 매핑 방식은 사용중인 형식 스택 (SOAP, REST 등)에 따라 다릅니다. 기본 스택은 SOAP이며 WCF의 청사진 인 매우 자연스러운 매핑입니다. 헤더는 SOAP 헤더에 매핑되고 오류는 SOAP 오류에 직접 매핑됩니다. REST 헤더의 경우 HTTP 헤더로 매핑 될 수 있으며 오류는 메시지와 함께 500 상태가됩니다.

+0

감사합니다. 비누 머리글을 사용하고 있습니다. 훌륭하게 작동합니다. 귀하의 의견에 감사드립니다. – user80855

관련 문제