IEnumerable ‹CustomType› в PowerShell

Я пытаюсь использовать 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]] <<<<

person svick    schedule 22.03.2010    source источник


Ответы (2)


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

person kvb    schedule 22.03.2010

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

Collections.Generic.IEnumerable[string]

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

person Joey    schedule 22.03.2010