2009-10-05 5 views
3

WCF로 작성된 서비스를 iCal로 보내려면 어떻게해야합니까? 내가 볼 수있는 예제는 xml 또는 json을 응답 형식을 지정하는 방법으로 사용합니다. 다른 유형의 응답 기관을 반환하는 가장 좋은 방법은 무엇입니까?iCal을 반환하는 WCF 서비스

[ServiceContract] 
interface IMyCalService 
{ 
    [OperationContract] 
    string GetiCal(.......); 
} 

다음에 가서 클라이언트에 더 그것을 처리 :

답변

1

가장 간단한 해결 방법은 WCF 호출에서 간단한 문자열로 XML 또는 JSON 형식 (곳)에서 iCal의 표현을 반환하는 것입니다 일단 iCal XML (또는 JSON)이 포함 된 문자열을 받으면 SOAP를 사용하는 표준 WCF로이 작업을 수행 할 수 있습니다.

다른 방법으로는 특정 URL을 클릭 할 때 iCal 형식의 응답을 반환하는 WCF REST 서비스를 사용하는 것일 수 있습니다.이 경우에는 당분간 WCF Rest Starter Kit을 설치해야합니다 (.NET 3.0/3.5). iCal 형식에 익숙하지는 않지만 iCal 요구 사항을 충족하는 데 필요한 XML 형식을 구성 할 수 있습니다.

마크 같은

3

뭔가 : 그래서

[WebGet(UriTemplate="{id}.ics")] 
[OperationContract] 
Stream GetCalendar(int id) 
{ 
    WebOperationContext.Current.OutgoingResponse.ContentType="text/calendar"; 

    //Now just return the appropriate data in iCal format in the Stream... 
} 

지금 당신은 HTTP는 예를 GET 할 수있는 yourService.svc/123.ics를 열고 iCal을 다시 받으십시오.

"Stream"은 WCF REST (비 XML, JSON이 아닌 응답에 사용됨)에 특수하게 처리되는 이유입니다.

이 기능을 사용하려면 WebHttpBinding 및 WebHttp 동작을 모두 사용해야합니다.

+0

마지막 문장에서 "이 기능을 사용하려면 WebHttpBinding 및 WebHttp 동작을 모두 사용해야 함을 기억하십시오." – Drammy

+0

서비스 구성에서 http://msdn.microsoft.com/en-us/library/bb412176.aspx와 http://msdn.microsoft.com/en-us/library/bb924425.aspx를 모두 사용해야합니다. –

관련 문제