present@わんくま

本家はこちら

目次

Blog 利用状況

ニュース

アクセサリ

書庫

日記カテゴリ

ギャラリ

リンク

WCF で配信

そういえば、WCF で RSS の配信ができるんだったなぁ。
まだ試していなかったので、超簡単なサンプルを作ってみました。
今更ですが。

 

今回もコンソールアプリで作ります。まずは次の2つを参照に追加。

  • System.ServiceModel
  • System.ServiceModel.Web

 

次はサービスコントラクトを定義。

[ServiceContract]
public interface IMyRss
{
    [OperationContract]
    [WebGet]
    Rss20FeedFormatter GetFeed();
}

 

そしてサービス実装。

public class MyRss : IMyRss
{
    public Rss20FeedFormatter GetFeed()
    {
        SyndicationItem item1 = new SyndicationItem(
            "最初の記事。",
            "最初の記事。",
            new Uri("http://localhost:8000/MyRss/Contents/1"));

        SyndicationItem item2 = new SyndicationItem(
            "2番目の記事。",
            "2番目の記事。",
            new Uri("http://localhost:8000/MyRss/Contents/2"));

        SyndicationItem item3 = new SyndicationItem(
            "3番目の記事。",
            "3番目の記事。",
            new Uri("http://localhost:8000/MyRss/Contents/3"));

        SyndicationFeed feed = new SyndicationFeed("Nakamura Blog",
            "Nakamura .Text Powered Blog",
            new Uri("http://localhost:8000/MyRss"));
            
        feed.Authors.Add(new SyndicationPerson("nakamura@wankuma.com"));
        feed.Categories.Add(new SyndicationCategory("雑記"));
        feed.Description = new TextSyndicationContent("雑記です。");
        feed.Items = new List<SyndicationItem> { item1, item2, item3 };

        return new Rss20FeedFormatter(feed);
    }
}

 

ホストを実装。

class Program
{
    static void Main(string[] args)
    {
        WebServiceHost host = new WebServiceHost(typeof(MyRss));

        host.Open();

        Console.WriteLine("サービス起動。終了するには Enter を押して下さい。");
        Console.ReadLine();

        host.Close();
    }
}

 

最後に、構成ファイルでエンドポイントを指定。

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
    <system.serviceModel>
        <services>
            <service name="WcfSyndication.MyRss">
                <endpoint address="http://localhost:8000/MyRss/" binding="webHttpBinding"
                          name="MyRss" contract="WcfSyndication.IMyRss" />
            </service>
        </services>
    </system.serviceModel>
</configuration>

 

いざ、実行!

 

おおっ!簡単ですね。

投稿日時 : 2008年6月30日 23:11

コメントを追加

# 拡張メソッドとメソッドチェイン 2008/07/01 20:38 Nakamura Blog

拡張メソッドとメソッドチェイン

# Codezineに「連載:実践! WCFプログラミング」という連載が始まりました。 2008/07/02 22:20 もり ひろゆきの日々是勉強

Codezineに「連載:実践! WCFプログラミング」という連載が始まりました。

# Codezineに「連載:実践! WCFプログラミング」という連載が始まりました。 2008/07/02 22:20 もり ひろゆきの日々是勉強

Codezineに「連載:実践! WCFプログラミング」という連載が始まりました。

# 拡張メソッドとメソッドチェイン 2008/08/29 23:54 Nakamura Blog

拡張メソッドとメソッドチェイン

タイトル
名前
URL
コメント