找不到文件" System.Net.ConnectStream"降级到.NET 3.5后

时间:2014-06-26 22:56:13

标签: c# .net

我正在通过Google Maps API创建用于地址编码地址的SQL CLR存储过程。我正在使用的SQL版本是2008,它只支持.NET 3.5及更低版本,因此我需要降级我的目标框架。

我正在生成一个Web请求,获取其响应,然后尝试使用以下代码获取其响应流:

 var request = WebRequest.Create(requestUri);
 var response = request.GetResponse();
 var xdoc = XDocument.Load(response.GetResponseStream().ToString());

我在最后一行使用ToString()方法,因为XDocument.Load()方法不支持.NET 3.5中的流。

这是我得到以下异常的最后一行,我还没有解决:

  

无法找到文件'c:\ users \ xxx \ documents \ visual studio 2012 \ Projects \ GoogleGeoCoder \ ConsoleApplication1 \ bin \ Debug \ System.Net.ConnectStream'。

请记住,在针对.NET 4时,所有这些都很有效 - 唯一的调整是添加ToString()方法。

有关如何解决异常的任何想法?

1 个答案:

答案 0 :(得分:1)

response.GetResponseStream()返回Stream。当您.ToString() Stream时,您将获得该类的名称,而不是该流的内容。

如果您想获取流的内容,首先需要阅读流。

var response = new StreamReader(request.GetResponse().GetResponseStream());
var xdoc = XDocument.Load(response.ReadToEnd().ToString());