2009-03-27 4 views
17

Je suis en train de déclarer la liste dans PowerShell, où la personne est définie à l'aide Add-Type:Powershell. Déclarer la liste générique avec classe définie en utilisant 'Add-Type'

add-type -Language CSharpVersion3 -TypeDefinition @" 
    public class Person 
    { 
     public Person() {} 

     public string First { get; set; } 
     public string Last { get; set; } 
    } 
"@ 

Cela fonctionne très bien:

New-Object Person 
New-Object System.Collections.Generic.List``1[System.Object] 

Mais cette ligne échoue:

New-Object System.Collections.Generic.List``1[Person] 

Qu'est-ce qui ne va pas ici?

+0

PowerShell 2.0, je présume? –

+0

Oui, travailler avec 2.0 – alex2k8

+1

Pour quelqu'un d'autre, la ligne qui échoue (ci-dessus) fonctionne dans Powershell 3.0 (bien que je devais supprimer "-Language CSharpVersion3" parce que j'ai couru cela sur Windows Server 2012). –

Répondre

8

Eh bien, je tentais de créer une liste de FileStream objets et ce fut ma solution (basé sur this link - qui décrit en fait un moyen de résoudre votre problème):

$fs = New-Object 'System.Collections.Generic.List[System.IO.FileStream]' 
$sw = New-Object 'System.Collections.Generic.List[System.IO.StreamWriter]' 
$i = 0 
while ($i < 10) 
{ 
    $fsTemp = New-Object System.IO.FileStream("$newFileName",[System.IO.FileMode]'OpenOrCreate',[System.IO.FileAccess]'Write') 
    $fs.Add($fsTemp) 
    $swTemp = New-Object System.IO.StreamWriter($fsTemp) 
    $sw.Add($swTemp) 
    $i++ 
} 

Hope that helps!

Questions connexes