2010-05-31 14 views
4

J'ai créé un point final OData (en utilisant Entity Framework, service de données WCF)OData et les méthodes de WEBGET WCF personnalisé

et a ajouté une méthode d'essai de WebGet de test personnalisé comme ceci:

[WebGet(UriTemplate = "{text}")] 
    public IQueryable<string> SplitString(string text) 
    { 
     if (text == null) throw new DataServiceException("text not specified"); 
     var result = (from s in text.Split('-') orderby s select s); 
     return result.AsQueryable(); 
    } 

et une config line:

config.SetServiceOperationAccessRule("SplitString", ServiceOperationRights.All); 

Cependant, peu importe comment je spécifie l'URL, je n'arrive pas à remplir le paramètre text. (c'est toujours nul).

donc:
http://localhost/myservice.svc/SplitString/testtext

ne fonctionne pas (Il jette mon exception puisque le param est nulle). Quel est le format d'URL correct (ou UriTemplate) à utiliser pour que le paramètre fonctionne?

Les seuls exemples que j'ai trouvés de odata et WebGet ont seulement une méthode d'exemple qui n'a aucun paramètre.

Répondre

7

La bonne voie est: /myservice.svc/SplitString?testtext='mystringvalue »

Voir cette page pour plus de détails: http://msdn.microsoft.com/en-us/library/cc668788.aspx

+0

est-il pas moyen d'obtenir ce à travailler avec DataService ? – eth0

+0

Que voulez-vous dire par aucun moyen de faire ce travail avec DataService ? Pourriez-vous s'il vous plaît décrire votre question plus en détail (et de préférence comme une question distincte)? –