Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在WCF RESTful服务中返回json格式的IList?_Wcf_Json_Serialization_Ilist - Fatal编程技术网

如何在WCF RESTful服务中返回json格式的IList?

如何在WCF RESTful服务中返回json格式的IList?,wcf,json,serialization,ilist,Wcf,Json,Serialization,Ilist,在WCF 3.5服务中是否可能有这样的方法签名(Offer是一个带有DataContractAttribute和DataMemberAttribute的自定义类): [运营合同] [WebGet(UriTemplate=“GetOffers”,ResponseFormat=WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.Bare)] IList GetOffers(); 因为如果我在web浏览器中键入相应的URL,就会出现序列化错误(我认

在WCF 3.5服务中是否可能有这样的方法签名(Offer是一个带有DataContractAttribute和DataMemberAttribute的自定义类):

[运营合同]
[WebGet(UriTemplate=“GetOffers”,ResponseFormat=WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.Bare)]
IList GetOffers();
因为如果我在web浏览器中键入相应的URL,就会出现序列化错误(我认为这是因为IList没有Serializable属性,所以json序列化程序无法序列化它)

解决方法是使用如下方法签名:

[OperationContract]
[WebGet(UriTemplate = "GetOffers", ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)]
List<Offer> GetOffers();
[运营合同]
[WebGet(UriTemplate=“GetOffers”,ResponseFormat=WebMessageFormat.Json,BodyStyle=WebMessageBodyStyle.Bare)]
列出GetOffers();
结果是相同的序列化输出(一个简单的json数组),但由于第一个数组使用XML,我想知道是否有办法让它在json中工作,保持相同的签名


编辑:好的,它也不适用于XML序列化,因此行为似乎是正常的。问题仍然存在,是否可以保留此签名并更改序列化程序行为以使其正常工作?如何操作?

我认为您需要将使用的硬收集类型添加到已知类型列表中。有关概念说明,请参阅,有关示例,请参阅,有关MSDN杂志文章的详细信息,请参阅


另外,请参见此处的前两个答案:

我认为您需要将您使用的硬收集类型添加到已知类型列表中。有关概念说明,请参阅,有关示例,请参阅,有关MSDN杂志文章的详细信息,请参阅

此外,请参见此处的前两个答案:

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