2010-11-23 35 views
7

J'essaye de compiler une version "cookie aware" de la classe WebClient - mais je n'arrive pas à surmonter certains des obstacles de l'utilisation de l'applet de commande Add-Type ajoutée dans PowerShell v2. Voici le code que je suis en train de compiler:Compilation d'un nouveau type dans PowerShell v2 - Cookie Aware WebClient

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 

Il ne peut pas sembler trouver le type de CookieContainer ne peut pas être trouvé (bien qu'il soit qualifié ...) - clairement que je suis aveugle sur quelque chose.

Édition: Mise à jour de l'exemple de code pour être correct et copier-n-pasteable, merci!

Répondre

5

La seconde référence à CookieContainer avec l'expression du constructeur est complète. La première référence, lors de la déclaration du champ m_container ne l'est pas. Faites les deux qualifiés pour que Powershell puisse les trouver.

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

Merci. Je savais que j'étais aveugle mais je ne pouvais pas le voir! – Goyuix