WCF 3.5 サービスでこのようなメソッド シグネチャを使用することは可能ですか (Offer は DataContractAttribute と DataMemberAttribute を持つカスタム クラスです)。
[OperationContract]
[WebGet(UriTemplate = "GetOffers", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
IList<Offer> GetOffers();
対応する URL を Web ブラウザーに入力すると、シリアル化エラーが発生するためです (IList に Serializable 属性がないため、json シリアライザーがシリアル化できないためだと思います)。
回避策は、次のようなメソッド シグネチャを使用することです。
[OperationContract]
[WebGet(UriTemplate = "GetOffers", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
List<Offer> GetOffers();
同じシリアル化された出力 (単純な json 配列) になりますが、最初のものは XML で動作するため、同じ署名を維持しながら json で動作させる方法があるかどうか疑問に思っていました。
編集:XMLシリアライゼーションでも動作しないため、動作は正常のようです。この署名を保持し、シリアライザーの動作を変更してこれを機能させることは可能ですか? どのように?