Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/wcf/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在HtmlAlityPack中设置对HtmlWeb的引用_C#_Html Agility Pack - Fatal编程技术网

C# 如何在HtmlAlityPack中设置对HtmlWeb的引用

C# 如何在HtmlAlityPack中设置对HtmlWeb的引用,c#,html-agility-pack,C#,Html Agility Pack,我想分配一个动态(意味着推荐人会根据请求URL进行更改) 我找不到referer或Headers属性。我只能看到PreRequest,我可以在其中添加处理程序。是否有其他方法可以在不使用全局变量的情况下将referer传递给处理程序 void SomeMethod() { .... var referrer = "some URL"; //web.Referrer = referrer; Ideal way, but not possible

我想分配一个动态(意味着推荐人会根据请求URL进行更改)

我找不到
referer
Headers
属性。我只能看到
PreRequest
,我可以在其中添加处理程序。是否有其他方法可以在不使用全局变量的情况下将referer传递给处理程序

   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;
    }
有没有其他方法可以在不使用全局变量的情况下将引用传递给处理程序

   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;
    }
您可以使用捕获的变量。例如,请参阅此链接或此

现在你可以做了

void SomeMethod()
{
    var referrer = "some URL";
    web.PreRequest += (req){
        req.Referer = referrer;
        return false;
    };
}
一些注意事项:

什么是闭包?

闭包是一个函数,可以存储在变量中,作为参数传递,并引用定义时可见的变量

捕获的变量

闭包引用的外部变量称为捕获变量