2010-11-23 6 views
7

Ich versuche, eine "cookie aware" Version der WebClient Klasse zu kompilieren - aber ich kann nicht scheinen, einige der Hürden der Verwendung des Add-Type-Cmdlet in hinzugefügt PowerShell v2. Hier ist der Code, den ich zu kompilieren versuchen:Kompilieren neuer Typ in 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 

Es ist nicht der Cookietyp scheint zu finden kann nicht gefunden werden (obwohl es voll qualifiziert ist ...) - klar ich bin blind auf etwas.

Bearbeiten: Aktualisiert die Beispielcode korrekt und copy-n-pasteable, danke!

Antwort

5

Der zweite Verweis auf CookieContainer mit dem Konstruktorausdruck ist vollständig qualifiziert. Die erste Referenz, wenn das Feld m_container deklariert wird, ist nicht. Machen Sie beide voll qualifiziert, damit Powershell sie finden kann

+0

Danke. Ich wusste, dass ich blind war, konnte es aber nicht sehen! – Goyuix