2010-03-22 34 views
7

Tôi đang cố sử dụng Enumerable.ToList() trong PowerShell. Rõ ràng, để làm điều đó, tôi phải chuyển đổi một cách rõ ràng đối tượng thành IEnumerable<CustomType>, nhưng tôi không thể làm điều đó. Có vẻ như tôi không thể viết chính xác IEnumerable<CustomType> trong PowerShell. Cả hai IEnumerable<string>CustomType hoạt động chính xác (loại tùy chỉnh tôi đang cố gắng sử dụng được gọi là WpApiLib.Page), vì vậy tôi không biết mình có thể làm gì sai.IEnumerable <CustomType> trong PowerShell

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]] <<<< 

Trả lời

3

Xem câu trả lời tại đây: Powershell Generic Collections. Có vẻ như đây là một kết quả không may về cách PowerShell diễn giải generics, và bạn sẽ cần phải hoàn toàn đủ điều kiện loại WpApiLib.Page.

+0

ouch, điều đó thực sự xấu xí, cảm ơn – svick

6

Trong PowerShell v2 bạn có thể sử dụng

Collections.Generic.IEnumerable[string] 

để chỉ IEnumberable<string>. Cú pháp hoạt động cho New-Object (mặc dù không có giao diện) và nó có vẻ hợp lệ cho phôi.

Các vấn đề liên quan