5
class AdvancedWebRequest : HttpWebRequest {
    private static readonly ILog log = log4net.LogManager.GetLogger(typeof(AdvancedWebRequest));

    public AdvancedWebRequest(string url, CookieContainer cookies = null) {
        Create(url);
        UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.22 (KHTML, like Gecko) Chrome/25.0.1364.97 Safari/537.22";
        Referer = Address.AbsoluteUri;

        if (cookies == null) {
            CookieContainer = Program.request.CookieContainer;
        } else {
            CookieContainer = cookies;
        }
    }
}

これは私がやりたいことなので、基本的にはいくつかの変数がすでに設定されているHttpWebRequestを取得するので、常に自分で設定する必要はありません。

エラーの取得:

'System.Net.HttpWebRequest.HttpWebRequest()' is obsolete: 'This API supports the .NET Framework infrastructure and is not intended to be used directly from your code.' \Extensions\AdvancedWebRequest.cs   14  10  

何か提案は、HttpWebRequest本当に拡張することはできませんか?

4

2 に答える 2

3

から継承することはできませんが、から継承することはHttpWebRequestできますWebRequest

ここで同様の質問からの回答を確認してください。

于 2013-03-02T12:38:34.820 に答える
3

次のような拡張メソッドを使用できます。

public static DoRequest(this HttpWebRequest req){
//do something
}

次に、このメソッドを次のように呼び出すことができます。

webrequest.DoRequest();

詳細については、MSDNページを参照してください:http://msdn.microsoft.com/en-us/library/vstudio/bb383977.aspx

于 2013-03-03T09:47:13.143 に答える