J'essaye d'écrire un Wrapper WCF simple pour charger un flux de syndication en tant que client.Obtention d'un chemin RSS ou ATOM par défaut à partir de WCF, Client uniquement
contrat
[ServiceContract]
public interface IFeedService
{
[OperationContract]
[WebGet(UriTemplate="")]
SyndicationFeed GetFeed();
}
Utilisation
using (var cf = new WebChannelFactory<IFeedService>(new Uri("http://channel9.msdn.com/Feeds/RSS")))
{
IFeedService s = cf.CreateChannel();
this.FeedItemsList.DataSource = s.GetFeed().Items;
}
Question Le problème est que le service est l'ajout du nom de la méthode à l'URL (ie. L'adresse ci-dessus appellerait http://channel9.msdn.com/Feeds/RSS/GetFeed), et depuis Je veux que cela soit étendu à n'importe quel flux Je ne connais pas toujours le nom du flux. Y at-il un attribut ou une propriété que je peux spécifier qui utilisera l'adresse de point de terminaison par défaut au lieu d'ajouter un nom de méthode? L'ajout de [WebGet (UriTemplate = "")] ne m'apporte qu'une partie de ce chemin.
Mettre à jour Il travaille pour http://channel9.msdn.com/Feeds/RSS, il se transforme en http://channel9.msdn.com/Feeds/RSS/, mais il ne fonctionne pas pour d'autres aliments comme http://weblogs.asp.net/scottgu/atom.aspx qui se change à http://weblogs.asp.net/scottgu/atom.aspx/
voir la question mise à jour avec plus de problèmes – bendewey
Lame, mais je pense que vous pouvez peut-être couper la dernière partie de l'Uri et le mettre dans le UriTemplate, par exemple. Uri ("http ... scottgu"), WebGet (UriTemplate = "atom.aspx") – Brian
L'URL est une entrée utilisateur – bendewey