2010-05-12 2 views
3

wcf에서 MessageParameterAttribute의 사용법을 알고 싶습니다. 내 기능에서wcf에서 MessageParameterAttribute를 사용하는 방법

:

[OperationContract] 
public float GetAirfare(
[MessageParameter(Name=”fromCity”)] string originCity, 
[MessageParameter(Name=”toCity”)] string destinationCity); 

나는 구현에 또는 서비스를 사용하는 동안 어디 fromCity 또는 toCity을 사용하지 말아. 그렇다면 이름을 지어주는 요지는 무엇입니까?

답변

5

이 특성은 직렬화를 제어하는 ​​데 사용됩니다. 들어오는 메시지를 설명하는 결과 XSD 스키마에서 키워드 또는 유형 이름을 사용하려는 경우 특히 유용 할 수 있습니다. 마찬가지로, 응답 메시지의 리턴 값에 대한 XML 요소 이름을 제어 할 수 있습니다. 또한 CLR 명명 규칙과는 별도로 XML 요소 명명 규칙을 표준화하는 데 유용한 특성이 될 수 있습니다. 예를 들어 매개 변수 이름에는 낙타의 경우를 사용하고 XML의 경우에는 파스칼 케이스를 사용하는 것이 좋습니다.

<s:Body> 
    <GetAirFare xmlns="yournamespacehere"> 
     <fromCity>Chicago</fromCity> 
     <toCity>Las Vegas</toCity> 
    </GetAirFare> 
</s:Body> 
+0

감사합니다 : 우리는 예를 들어 사용자 제공 코드를 사용한다면

요청과 같을 것이다. 그러나 언제 XSD를 명시 적으로 지정 하시겠습니까? 어떤 예를 들려 줄 수 있습니까? – Archie

+0

Visual Studio IDE를 사용 중이라고 가정하면 XSD가 자동으로 생성됩니다. 사용자 또는 다른 클라이언트가 WCF 서비스에 대한 서비스 참조를 추가하면 Reference.cs 클래스가 자동으로 다음과 같이 생성됩니다. public float GetAirfare (string fromCity, string toCity) { return base.Channel. GetAirfare (fromCity, toCity); 누군가가 비영어권 환경을 사용하여 서비스를 소비하고 우리와 같은 서비스 프록시를 자동 생성하는 도구가없는 경우 수동으로 프록시 클래스를 만들어야 할 수 있으며 XSD 및 WSDL이 필요합니다 그것. –