如何:作为 Atom 和 RSS 公开源

Windows Communication Foundation (WCF) 允许您创建公开联合源的服务。本主题讨论如何使用 Atom 1.0 和 RSS 2.0 创建公开联合源的联合服务。此服务公开一个可以返回任一联合格式的终结点。

创建基本联合服务

  1. 使用通过 WebGetAttribute 属性标记的接口定义服务协定。作为联合源公开的每个操作都会返回一个 SyndicationFeedFormatter 对象。请注意 WebGetAttribute 的参数。UriTemplate 指定用于调用此服务操作的 URL。此参数的字符串包含文本和一个用大括号括住的变量 ({format})。此变量与服务操作的 format 参数相对应。有关更多信息,请参见 UriTemplateBodyStyle 会影响此服务操作所发送和接收的消息的写入方式。Bare 指定不使用基础结构定义的 XML 元素包装发送到和接收自此服务操作的数据。有关更多信息,请参见 WebMessageBodyStyle

    提示

    在此接口中使用 ServiceKnownTypeAttribute 以指定服务操作返回的类型。

  2. 实现服务协定。

  3. 创建 SyndicationFeed 对象,并添加作者、类别和说明。

  4. 创建若干 SyndicationItem 对象。

  5. 向源中添加 SyndicationItem 对象。

  6. 使用格式参数返回请求的格式。

承载服务

  1. 创建 WebServiceHost 对象。

  2. 打开服务主机,从服务加载源,显示源,然后等待用户按 Enter。

使用 HTTP GET 调用 GetBlog

  1. 打开 Internet Explorer,键入下面的 URL 并按 Enter:https://localhost:8000/BlogService/GetBlog

    URL 包含服务的基址 (https://localhost:8000/BlogService)、终结点的相对地址,以及要调用的服务操作。

从代码中调用 GetBlog()

  1. 使用基址和调用的方法创建 XmlReader

  2. 调用静态 Load 方法,同时传入刚刚创建的 XmlReader

    这将调用服务操作,并用从服务操作返回的格式化程序填充新的 SyndicationFeed

  3. 访问源对象。

示例

下面列出了此示例的完整代码。

编译代码

编译前面的代码时,请引用 System.ServiceModel.dll 和 System.ServiceModel.Web.dll。

另请参见

参考

WebHttpBinding
WebGetAttribute