序列化IHttpActionResult作为JSON导致异常
我有一个小的Web API 2应用程序,我试图实现传入请求和传出响应的日志记录(基本上记录你通过HTTP流量看到的东西Fiddler2)。序列化IHttpActionResult作为JSON导致异常
在尝试序列化来自某个方法的响应时,我收到了我不知道如何处理的异常。我试着玩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)
回答:
是否有响应内的1一对多的关系?响应中是否包含一个列表,并且在该列表项中它包含回到响应的引用?
当构建一个json子节点时,无法引用它们的父节点,在尝试序列化时会产生无限循环。
构建一个视图模型并将该引用移回父级。只要通过parentid。
以上是 序列化IHttpActionResult作为JSON导致异常 的全部内容, 来源链接: utcz.com/qa/261192.html