我有一个小的Web API 2应用程序,我正在尝试实现传入请求和传出响应的记录(基本上是通过Fiddler2记录您所看到的HTTP流量)。
在尝试序列化方法的响应时,我遇到的异常是我不知道如何处理。我试过玩JsonSerializerSettings等等。我可能会以完全错误的方式做这件事。非常感谢任何指导。
这是导致异常的代码片段。
var response = Ok(successMessage);
JsonSerializerSettings settings = new JsonSerializerSettings
{
PreserveReferencesHandling=Newtonsoft.Json.PreserveReferencesHandling.Objects,
ReferenceLoopHandling = ReferenceLoopHandling.Ignore
};
this.Logging.LogMessage(MessageType.ServiceResponse, JsonConvert.SerializeObject(response, Formatting.Indented, settings));
return response;
例外:
Newtonsoft.Json.JsonSerializationException: Error getting value from 'ReadTimeout' on 'System.Web.HttpInputStream'. --->
System.InvalidOperationException: Timeouts are not supported on this stream. at System.IO.Stream.get_ReadTimeout() at GetReadTimeout(Object )
at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target) --- End of inner exception stack trace ---
at Newtonsoft.Json.Serialization.DynamicValueProvider.GetValue(Object target)
答案 0 :(得分:0)
响应中是否存在1对多关系?响应是否包含一个列表,并在该列表项中包含一个返回响应的引用?
当构建一个json子节点时,无法引用它们的父节点,在尝试序列化时会有一个无限循环。
构建视图模型并将引用移回父级。只是通过parentid。