2011-02-07 142 views
1

是否有可能有这样的方法签名在WCF 3.5服务(优惠与DataContractAttribute和DataMemberAttribute自定义类):如何在WCF RESTful服务中以json格式返回IList?

[OperationContract] 
[WebGet(UriTemplate = "GetOffers", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)] 
IList<Offer> GetOffers(); 

因为如果我在Web浏览器中输入相应的URL,我得到一个序列化错误(我认为这是因为IList没有Seri​​alizable属性,所以json序列化程序无法序列化它)。

的解决方法是使用这样一个方法签名:

[OperationContract] 
[WebGet(UriTemplate = "GetOffers", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)] 
List<Offer> GetOffers(); 

在相同的串行化输出(一个简单的JSON数组)所得的,但作为第一种使用XML的,我想知道是否有一种方法可以使它在json中工作,保持相同的签名。

编辑:好它不与XML序列化工作,要么,所以行为似乎是正常的。问题仍然存在,是否有可能保留这个签名并改变序列化器的行为来使其工作?怎么样?

回答