J'ai un contrat de service décrivant une méthode utilisée dans un service WCF. La méthode a un attribut WebGet qui définit un UriTemplate et un ResponseFormat.Est-ce qu'un attribut WebGet de la méthode WCF OperationContract peut avoir plusieurs types ResponseFormat?
Je souhaite réutiliser une seule méthode et avoir plusieurs attributs WebGet avec des UriTemplates différents et des ResponseFormats différents. Fondamentalement, j'espère éviter d'avoir plusieurs méthodes juste pour différencier des choses comme le type de retour étant XML vs JSON. Dans tous les exemples que j'ai vus jusqu'à présent, je suis cependant obligé de créer une méthode différente pour chaque attribut WebGet. Voici un exemple OperationContract
[ServiceContract]
public interface ICatalogService
{
[OperationContract]
[WebGet(UriTemplate = "product/{id}/details?format=xml", ResponseFormat = WebMessageFormat.Xml)]
Product GetProduct(string id);
[OperationContract]
[WebGet(UriTemplate = "product/{id}/details?format=json", ResponseFormat = WebMessageFormat.Json)]
Product GetJsonProduct(string id);
}
En utilisant l'exemple ci-dessus, je voudrais utiliser la méthode getProduct pour les deux types de xml et retour JSON comme celui-ci:
[ServiceContract]
public interface ICatalogService
{
[OperationContract]
[WebGet(UriTemplate = "product/{id}/details?format=xml", ResponseFormat = WebMessageFormat.Xml)]
[WebGet(UriTemplate = "product/{id}/details?format=json", ResponseFormat = WebMessageFormat.Json)]
Product GetProduct(string id);
}
est-il un moyen d'y parvenir si Je ne suis pas coincé écrire différentes méthodes juste pour retourner différents ResponseFormats?
Merci!