2009-10-07 5 views
3

WCF 서비스에 대해 dataContract 또는 MessageContract를 작성해야하는지 여부를 어떤 기준으로 결정해야합니까?언제 datacontract를 사용해야하며 WCF에서 messagecontract를 사용해야합니까?

내가 아는 것은 SOAP에 대한 더 많은 제어가 필요할 때 MessageContract를 사용한다는 것입니다.

두 번째로 DataContract가 MessageContract.Whats를 통해 노출되어있는 코드를 보았습니다.

실제 생활 장면을 제공하십시오.

답변

4

"반드시 - 또는"질문이 아닙니다. 복합 데이터 (int, string 등의 기본 유형 이상)를 다루는 경우 항상 데이터 계약을 체결하게됩니다. 그것은 주어진 것입니다.

SOAP 메시지의 레이아웃을 매우 세밀하게 제어해야하는 경우 메시지 계약 만 필요합니다. 대부분의 경우 시간의 90 % 이상 - 그렇지 않습니다.

메시지 계약을 통해 SOAP 헤더에 어떤 요소 (스칼라 유형 또는 복합 유형이 DataContracts인지)와 SOAP 본문을 명시 할 수 있습니다.

매우 구체적인 형식을 요구하는 통신 파트너가 있고 해당 레이아웃과 정확히 일치하도록 SOAP 메시지를 조정해야하는 경우이 기능이 필요할 수 있습니다. 메시지 계약이 필요하고 사용해야 할 때만 유효한 유일한 시나리오입니다.

짧게 설명하면 다음과 같습니다. 항상은 데이터 계약을 사용하며 실제로는 메시지 계약을 사용하지 않습니다 (절대적으로 긍정적 인 경우는 제외).

마크

3

SOAP 헤더 및 본문을 명시 적으로 인계해야하는 경우 MessageContracts를 사용합니다. 예를 들어 신용 카드 번호가 나머지 유형과 별도로 메시지에 암호화되어 있는지 확인해야하는 경우에는 전선의 메시지를 해당 수준으로 제어해야합니다.

은 몇 가지 예를 들면 다음 (특히 암호화 예)와 그에 대한 자세한 내용은 다음과 같습니다 http://msdn.microsoft.com/en-us/library/ms730255.aspx 그냥 순수 DTO들을 원하는 DataContracts로 이동 전선에 그 형태에 대해 걱정하지 않는 경우

.

관련 문제