Возможно ли иметь такую сигнатуру метода в службе WCF 3.5 (Offer - это настраиваемый класс с DataContractAttribute и DataMemberAttribute):
[OperationContract]
[WebGet(UriTemplate = "GetOffers", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
IList<Offer> GetOffers();
Потому что, если я ввожу в веб-браузере соответствующий URL-адрес, я получаю ошибку сериализации (я думаю, это потому, что IList не имеет атрибута Serializable, поэтому сериализатор json не может его сериализовать).
Обходной путь - использовать сигнатуру метода, подобную этой:
[OperationContract]
[WebGet(UriTemplate = "GetOffers", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
List<Offer> GetOffers();
В результате получается тот же сериализованный вывод (простой массив json), но поскольку первый работает с XML, мне было интересно, есть ли способ заставить его работать в json, сохраняя ту же подпись.
Изменить: Хорошо, он также не работает с сериализацией XML, поэтому поведение кажется нормальным. Вопрос все еще остается, можно ли сохранить эту подпись и изменить поведение сериализатора, чтобы это работало? Как?