IEnumerable <CustomType>в PowerShell - PullRequest
       8

IEnumerable <CustomType>в PowerShell

7 голосов
/ 22 марта 2010

Я пытаюсь использовать Enumerable.ToList() в PowerShell. Очевидно, что для этого мне нужно явно преобразовать объект в IEnumerable<CustomType>, но я не могу этого сделать. Кажется, я не могу правильно написать IEnumerable<CustomType> в PowerShell. Оба IEnumerable<string> и CustomType работают правильно (пользовательский тип, который я пытаюсь использовать, называется WpApiLib.Page), поэтому я не знаю, что я могу делать неправильно.

PS C:\Users\Svick> [Collections.Generic.IEnumerable``1[System.String]]

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     False    IEnumerable`1


PS C:\Users\Svick> [WpApiLib.Page]

IsPublic IsSerial Name                                     BaseType
-------- -------- ----                                     --------
True     True     Page                                     System.Object


PS C:\Users\Svick> [Collections.Generic.IEnumerable``1[WpApiLib.Page]]
Unable to find type [Collections.Generic.IEnumerable`1[WpApiLib.Page]]: make su
re that the assembly containing this type is loaded.
At line:1 char:51
+ [Collections.Generic.IEnumerable``1[WpApiLib.Page]] <<<<

Ответы [ 2 ]

6 голосов
/ 23 марта 2010

В PowerShell v2 вы можете использовать

Collections.Generic.IEnumerable[string]

для обозначения IEnumberable<string>. Синтаксис работает для New-Object (хотя и не с интерфейсом), и, похоже, он действителен и для приведений.

3 голосов
/ 22 марта 2010

См. Ответ здесь: Родовые коллекции Powershell . Похоже, что это является печальным следствием того, как PowerShell интерпретирует дженерики, и вам необходимо полностью определить тип WpApiLib.Page.

...