HtmlAgilityPackのHtmlWebに参照元を設定する方法

c# html-agility-pack

質問

私はダイナミックを指定したい(リファラーがリクエストURLに従って変化することを意味する)。

私はReferrerまたはHeadersプロパティを見つけることができません。私が見ることができるのはPreRequestで、ハンドラを追加できます。グローバル変数を使用せずにハンドラーにリファラーを渡す方法はありますか?

   void SomeMethod()
   {
     ....
      var referrer = "some URL";
      //web.Referrer = referrer;  Ideal way, but not possible
      web.PreRequest += OnPreRequest;
      ....
   }

    bool OnPreRequest(HttpWebRequest req)
    {
        req.Referer = ??; //how to know the referrer address here?
        return false;
    }

受け入れられた回答

グローバル変数を使用せずにハンドラーにリファラーを渡す方法はありますか?

キャプチャされた変数を使用できます 。たとえば、このリンクの「C#での変数キャプチャの理解」またはこのクロージャとキャプチャされた変数C#

今できること

void SomeMethod()
{
    var referrer = "some URL";
    web.PreRequest += (req){
        req.Referer = referrer;
        return false;
    };
}

いくつかのメモ:

閉鎖とは何ですか?

クロージャは、変数に格納され、パラメータとして渡され、定義時に表示される変数を参照する関数です。

キャプチャされた変数

クロージャによって参照される外部変数は、キャプチャされた変数



Related

ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow
ライセンスを受けた: CC-BY-SA with attribution
所属していない Stack Overflow