Атрибут WebGet WCF OperationContract метода может иметь несколько типов ResponseFormat?

У меня есть 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?

Спасибо!

17
задан Ian Suttle 17 November 2009 в 05:49
поделиться