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

时间:2010-11-23 22:09:14

标签: c# powershell webclient powershell-v2.0

我正在尝试编译cookie aware类的“WebClient”版本 - 但我似乎无法克服使用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

似乎无法找到无法找到的CookieContainer类型(尽管它完全合格......) - 显然我对某些事情视而不见。

修改:将示例代码更新为正确且可复制粘贴,谢谢!

1 个答案:

答案 0 :(得分:5)

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

private System.Net.CookieContainer m_container = new System.Net.CookieContainer();