【问题标题】:WCF service to return iCalWCF 服务返回 iCal
【发布时间】:2009-10-06 07:17:26
【问题描述】:

如何使用 WCF 编写服务以返回 iCal?我看到的示例使用 xml 或 json 作为格式化响应的方式。返回其他类型的响应正文的最佳方式是什么?

【问题讨论】:

    标签: html wcf format response


    【解决方案1】:

    类似这样的:

    [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 行为才能使其正常工作。

    【讨论】:

    【解决方案2】:

    最简单的解决方案是以 XML 或 JSON 格式(您的选择)作为 WCF 调用的简单字符串返回 iCal 表示:

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

    然后在您收到包含 iCal XML(或 JSON)的字符串后,继续在客户端上进一步处理它。这可以通过使用 SOAP 的标准 WCF 来完成。

    其他方法可能是使用 WCF REST 服务,该服务在您点击特定 URL 时返回 iCal 格式的响应 - 这需要暂时安装 WCF Rest Starter Kit(在 .NET 3.0/3.5 中) .我对 iCal 格式并不十分熟悉,但我确信通过某种方式,您将能够构建必要的 XML 格式来满足 iCal 要求。

    马克

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多