我有一个REST服务调用WCF服务。 WCf服务中的方法按预期返回数据。这是c#对象的Json格式。
[
{
"$id": "1",
"children": [],
"id": 1,
"name": "1",
"owner": {
"userId": 1,
"username": "testuser",
"firstName": null,
"lastName": null
},
"parent": null,
"permissions": [],
"type": 0
}
]
当有一个复杂的对象时,WCf服务抛出错误"底层连接已关闭:连接意外关闭"
[
{
"$id": "1",
"Children": [
{
"$id": "2",
"Children": [],
"Id": 603268262,
"Name": "testfolder",
"Owner": {
"UserId": 555,
"Username": "testuser",
"FirstName": null,
"LastName": null
},
"Parent": {
"$ref": "1"
},
"Permissions": null,
"Type": 0
}
],
"Id": 1,
"Name": "555",
"Owner": {
"UserId": 555,
"Username": "testuser",
"FirstName": null,
"LastName": null
},
"Parent": null,
"Permissions": null,
"Type": 0
}
]
我在这个SO问题上尝试了大多数答案。为什么只在返回复杂对象时才会收到错误?
答案 0 :(得分:0)
您需要检查数据合同,请看一下:http://msdn.microsoft.com/en-us/library/aa347850.aspx
答案 1 :(得分:0)
在发布问题后找到答案。我注意到有一个对象在Json中有一个对象的引用
"Parent": {
"$ref": "1"
}
这会阻止对象序列化。我做了一个深层复制并解决了问题