在PowerShell v2中编译新类型 - Cookie Aware WebClient

Goy*_*uix 7 c# powershell webclient powershell-2.0

我正在尝试编译WebClient类的" cookie感知 "版本- 但我似乎无法克服使用PowerShell v2中添加的Add-Type cmdlet的一些障碍.这是我试图编译的代码:

PS C:\> $def = @"
public class CookieAwareWebClient : System.Net.WebClient
{
  private System.Net.CookieContainer m_container = new System.Net.CookieContainer();
  protected override System.Net.WebRequest GetWebRequest(System.Uri address)
  {
    System.Net.WebRequest request = base.GetWebRequest(address);
    if (request is System.Net.HttpWebRequest)
    {
      (request as System.Net.HttpWebRequest).CookieContainer = m_container;
    }
    return request;
  }
}
"@

PS C:\> Add-Type -TypeDefinition $def
Run Code Online (Sandbox Code Playgroud)

它似乎无法找到无法找到的CookieContainer类型(虽然它是完全合格的......) - 显然我对某些东西视而不见.

编辑:更新了示例代码以使其正确并且可以复制n-pasteable,谢谢!

Jar*_*Par 5

CookieContainer对构造函数表达式的第二个引用是完全限定的.声明字段时的第一个引用m_container不是.让两者都完全合格,以便Powershell可以找到它们

private System.Net.CookieContainer m_container = new System.Net.CookieContainer();
Run Code Online (Sandbox Code Playgroud)