Примерно так:
[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.
Причина, по которой это работает, заключается в том, что «Поток» имеет специальный регистр в WCF REST (используется для ответов не-XML, не JSON).
Помните, что для этого нужно использовать поведение WebHttpBinding и WebHttp.