0

昨日コンソールアプリケーションを実行して、Web要求とWeb応答を送受信しましたが、正常に動作します。今日、フォームアプリケーションで同じメソッドをテストしていますが、「WebRequestにはCreateの定義が含まれていません」というエラーが表示されます。私の輸入品はすべて同じです。それは少し奇妙で、私は自分が何を間違っているのかわかりません。これは私のコンソールアプリケーションのコードです:

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 "";

        }

    }
}
4

2 に答える 2

3

フォーム アプリケーションでは、クラスに という名前が付けられているため、コンパイラはそのクラスではなく、そのクラスでメソッドをWebRequest探します。これを解決するには、System.Net で を完全に修飾します。CreateSystem.Net.WebRequestWebRequest

HttpWebRequest HWR_Request = (HttpWebRequest)System.Net.WebRequest.Create("http://www.hitta.se/ericsson/företag_och_personer");

私が当初考えていたあいまいな名前の競合ではなかったことを明確にしてくれた Amiram に感謝します。

于 2012-11-07T17:53:58.093 に答える
0

.net frameworkこの問題は、未満をターゲットにしているために発生します。4.5この問題を解決するには、 を から に変更しtarget framework4.5からproject properties application tab、プロジェクトを再構築します。

于 2015-07-09T15:14:15.340 に答える