SyndicationFeedをクライアントとしてロードするための単純なWCFラッパーを作成しようとしています。
契約
[ServiceContract]
public interface IFeedService
{
[OperationContract]
[WebGet(UriTemplate="")]
SyndicationFeed GetFeed();
}
使用法
using (var cf = new WebChannelFactory<IFeedService>(new Uri("http://channel9.msdn.com/Feeds/RSS")))
{
IFeedService s = cf.CreateChannel();
this.FeedItemsList.DataSource = s.GetFeed().Items;
}
質問問題は、サービスがURLにメソッド名を追加していることです(つまり、上記のURLはhttp://channel9.msdn.com/Feeds/RSS/GetFeedを呼び出します)。これを任意のURLに拡張したいのでフィードフィードの名前はいつもわかりません。メソッド名を追加する代わりにデフォルトのエンドポイントアドレスを使用するように指定できる属性またはプロパティはありますか?
更新 [WebGet(UriTemplate = "")]を追加すると、途中でしか取得できません。http://channel9.msdn.com/Feeds/RSSで機能し、 http://channel9.msdn.com/Feeds/RSS/に変更されますが、 http://weblogsなどの他のフィードでは機能しません。 .asp.net / scottgu / atom.aspxは、 http: //weblogs.asp.net/scottgu/atom.aspx/に変更されます。