【发布时间】:2014-07-24 16:57:27
【问题描述】:
我刚刚在我的 winforms 应用中捡到的东西
我的应用程序对 Web Api 服务进行 http 调用,如下所示
HttpClient _client = new HttpClient();
_client.Timeout = new TimeSpan(0, 3, 0);
_client.BaseAddress = new Uri("http://Myserver/MyApp");
_client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));
HttpResponseMessage response = _client.PostAsJsonAsync("api/Addin", newObject).Result;
没什么特别的,但只要你通过 nuget 安装 Newtonsoft.Json (V6.0.3)
突然,我在 HttpResponseMessage 代码行上收到 stackOverflow 错误。 删除Newtonsoft,问题就解决了。
问题是我要使用该库来序列化/反序列化表单中其他地方的数据
我的解决方法是使用不同的库,我只是使用 System.Runtime.Serialization.Json;但这仍然很奇怪,不是吗?
我还应该补充一点,这是 dotnet v4.0(不是 4.5),我的应用是在 MsWord 中作为附加组件运行的 VSTO COM 对象
我怀疑 Newtonsoft 中可能存在错误
【问题讨论】:
-
如果堆栈溢出,堆栈上有什么?启用外部代码。
-
启用外部代码?你的意思是我应该获取 newtonsoft 源代码并允许在外部类库中调试?我现在就去寻找那个版本的源代码
-
抱歉,不清楚。我的意思是启用“显示外部代码”。堆栈跟踪窗口中的一个菜单选项。
-
谢谢。生病尝试得到那个。问题是它并不总是给我调试断点。这是一个 VSTO ms 单词插件,有时 ms 单词完全是 crokes
-
@Crudler 我猜你从来没有想过这个?我遇到了同样的错误,希望有一个解决方案,而不是不包括 Newtonsoft.Json
标签: c# json json.net dotnet-httpclient