C# WebRequest不包含创建的定义
昨天我运行了一个控制台应用程序来发送和接收web请求和web响应,它工作得很好。今天,我在我的表单应用程序上测试相同的方法,我发现错误WebRequest不包含Create的定义。我所有的进口商品都一样。这有点奇怪,我不知道我做错了什么。这是我的控制台应用程序的代码:C# WebRequest不包含创建的定义,c#,C#,昨天我运行了一个控制台应用程序来发送和接收web请求和web响应,它工作得很好。今天,我在我的表单应用程序上测试相同的方法,我发现错误WebRequest不包含Create的定义。我所有的进口商品都一样。这有点奇怪,我不知道我做错了什么。这是我的控制台应用程序的代码: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HtmlAgilityPack;
using System.Net;
using System.IO;
namespace WebrequestCsharp
{
class Program
{
static void Main(string[] args)
{
StreamWriter sw;
sw = File.AppendText("c:\\Temp\\webresponse.txt");
//Create a Web-Request to an URL
HttpWebRequest HWR_Request = (HttpWebRequest)WebRequest.Create("http://www.hitta.se/ericsson/företag_och_personer");
//Send Web-Request and receive a Web-Response
HttpWebResponse HWR_Response = (HttpWebResponse)HWR_Request.GetResponse();
//Translate data from the Web-Response to a string
Stream S_DataStream = HWR_Response.GetResponseStream();
StreamReader SR_DataStream = new StreamReader(S_DataStream, Encoding.UTF8);
string s_ResponseString = SR_DataStream.ReadToEnd();
S_DataStream.Close();
sw.WriteLine(s_ResponseString);
sw.Flush();
sw.Close();
HtmlDocument doc = new HtmlDocument();
doc.Load("c:\\Temp\\webresponse.txt");
Console.ReadKey();
}
}
}
这是我的表单应用程序,无法接受我的创建:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using HtmlAgilityPack;
using System.Net;
using System.IO;
namespace PhoneFind
{
class WebRequest
{
private String url { get; set; }
private String searchEngine { get; set; }
HttpWebRequest HWR_Request = (HttpWebRequest)WebRequest.Create("http://www.hitta.se/ericsson/företag_och_personer");
public WebRequest(String url, String searchEngine)
{
this.url = url;
this.searchEngine = searchEngine;
}
// sends a request to the search engine
public String sendRequest(String url, String searchEngine)
{
switch (searchEngine){
case "hitta":
//Create a Web-Request to a URL
//Send Web-Request and receive a Web-Response
HttpWebResponse HWR_Response = (HttpWebResponse)HWR_Request.GetResponse();
//Translate data from the Web-Response to a string
Stream S_DataStream = HWR_Response.GetResponseStream();
StreamReader SR_DataStream = new StreamReader(S_DataStream, Encoding.UTF8);
string s_ResponseString = SR_DataStream.ReadToEnd();
S_DataStream.Close();
break;
}
return "";
}
}
}
在表单应用程序中,类名为
WebRequest
,因此编译器正在该类中寻找Create
方法,而不是System.Net.WebRequest
类。要解决此问题,请在System.Net中完全限定WebRequest
:
HttpWebRequest HWR_Request = (HttpWebRequest)System.Net.WebRequest.Create("http://www.hitta.se/ericsson/företag_och_personer");
感谢Amiram澄清了这不是我最初认为的模棱两可的名称冲突。在表单应用程序中,您的类名为
WebRequest
,因此编译器正在该类中寻找Create
方法,而不是System.Net.WebRequest
类。要解决此问题,请在System.Net中完全限定WebRequest
:
HttpWebRequest HWR_Request = (HttpWebRequest)System.Net.WebRequest.Create("http://www.hitta.se/ericsson/företag_och_personer");
感谢Amiram澄清这不是我最初认为的模棱两可的名称冲突。出现此问题是因为您的目标是
.net framework
小于4.5
,要解决此问题,只需从项目属性应用程序选项卡
将目标框架
更改为4.5
,然后重新生成项目。发生此问题的原因是您的目标.net framework
小于4.5
,要解决此问题,只需将项目属性应用程序选项卡中的目标框架更改为4.5
,然后重新生成项目。您试图在名为WebRequest的类中使用System.Net.WebRequest-我很惊讶编译器没有抱怨名称不明确。在您的表单程序中,尝试HttpWebRequest HWR_Request=(HttpWebRequest)System.Net.WebRequest.Create(“http://www.hitta.se/ericsson/foretag_och_personer");代码>@Tim,没有歧义,因为他的类获得优先权,因为代码在这个类中。@AmiramKorach-谢谢。我不确定是否会有歧义。但这仍然解释了他的错误,因为他的类不包含Create
@Tim Thank的定义。将其作为答案发布,以便我选择您。您试图在名为WebRequest的类中使用System.Net.WebRequest-我很惊讶编译器没有抱怨名称不明确。在您的表单程序中,尝试HttpWebRequest HWR_Request=(HttpWebRequest)System.Net.WebRequest.Create(“http://www.hitta.se/ericsson/foretag_och_personer");代码>@Tim,没有歧义,因为他的类获得优先权,因为代码在这个类中。@AmiramKorach-谢谢。我不确定是否会有歧义。但这仍然解释了他的错误,因为他的类不包含Create
@Tim Thank的定义。将其作为答案发布,以便我选择您。