我正在尝试编译
WebClient类的“
cookie aware”版本 – 但我似乎无法克服使用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类型(尽管它完全合格……) – 显然我对某些东西视而不见.
编辑:更新示例代码是正确的并且可以复制n-pasteable,谢谢!
解决方法
带有构造函数表达式的CookieContainer的第二个引用是完全限定的.声明字段m_container时的第一个引用不是.使两者都完全合格,以便Powershell可以找到它们
private System.Net.CookieContainer m_container = new System.Net.CookieContainer();