ジェネリック、Private、Protectedメソッドを実行する

「プライベートメンバにアクセスする」で、プライベートなメソッドを実行する Invoke-PrivateMethod をご紹介しました。
今回のスクリプトは、それの発展系で、ジェネリックメソッドに対応したものです。
一般の使用においては、プライベートメソッドの実行よりもジェネリックメソッドの実行に使われる方が多いのではないかと思い、スクリプト名を変更しています。

用例1

(1).ToString(‘D4’) と等価です。

PS> Invoke-Method (1) ToString('D4')
0001

用例2

Array.ForEach を呼び出します。

PS> $delegate = New-Delegate Action[int] {Write-Host ($args[0] * $args[0])}
PS> Invoke-Method ([Array]) ForEach([int[]](1..5), $delegate) -GenericType int
1
4
9
16
25

用例3

System.Linq.Enumerable の Repeat メソッドを呼び出します。ジェネリック型が System.Object の場合、-GenericType を省略できます。

PS> Invoke-Method ([Linq.Enumerable]) Repeat('Hello', 3)
Hello
Hello
Hello

ダウンロード

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です