У меня есть ServiceContract, описывающий метод, используемый в службе WCF. У метода есть атрибут WebGet, который определяет UriTemplate и ResponseFormat.
Я хочу повторно использовать один метод и иметь несколько атрибутов WebGet с разными UriTemplates и разными ResponseFormats. По сути, я надеюсь избежать использования нескольких методов просто для того, чтобы различать такие вещи, как тип возвращаемого значения - XML и JSON. Во всех примерах, которые я видел до сих пор, я должен создавать разные методы для каждого атрибута WebGet. Вот пример 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);
}
Используя приведенный выше пример, я бы хотел использовать метод GetProduct для обоих типов возвращаемых данных xml и json:
[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);
}
Есть ли способ достичь этого, поэтому я не застрял в написании разных методов только для того, чтобы вернуть разные ResponseFormats?
Спасибо!