.NETアセンブリをロードするには(PowerShell 入門)

今回は.NETアセンブリのロードについて説明したいと思います。

PowerShellは.NET Frameworkを基盤としており、あらかじめロードされているアセンブリがいくつかあります。

しかし、実際にやりたいことを実現するためには、ロード済みのアセンブリだけでは足りない場合があり、こういった場合は目的とするアセンブリをロードして、PowerShell上から使用できる様にする必要があります。

ロード方法ですが

[reflection.assembly]::LoadWithPartialName

を使用します。

たとえば Microsoft.VisualBasic 名前空間を使用できるようにするには

[reflection.assembly]::LoadWithPartialName("Microsoft.VisualBasic")

のようにしますが、このまま実行した場合は結果がAssemblyオブジェクトとして返されコンソールに表示されていまいます。

スクリプトの中からロードする場合には、出力されると邪魔な場合もありますので先頭に[void]を付加して

[void][reflection.assembly]::LoadWithPartialName("Microsoft.VisualBasic")

とすることをおすすめします。メッセージが必要な方は[void]は付加しないでください。

 

dllファイルのアセンブリのロードについても紹介しておきましょう。

この場合は

[reflection.assembly]::LoadFrom(dllファイル名)

を使用します。

こちらも同様にロード時にメッセージが出力されるので、回避したい方は先頭に[void]を付加してください。

せっかくなので1つサンプルを紹介します。

下記は Microsoft.VisualBasic
をロードしてStrConvメソッドを使用できるようにして、ひらがなとカタカナを相互変換できるようにするものです。

PS C:\Work> [void][reflection.assembly]::LoadWithPartialName("Microsoft.VisualBasic")
PS C:\Work>
PS C:\Work> $vbHiragana = [Microsoft.VisualBasic.VbStrConv]::Hiragana
PS C:\Work> $vbKatakana = [Microsoft.VisualBasic.VbStrConv]::Katakana

上記を入力し終えたら、「ひらがな」から「カタカナ」へ変換してみましょう。

PS C:\Work> [Microsoft.VisualBasic.Strings]::StrConv("あいうえお", $vbKatakana)
アイウエオ

ついでに「カタカナ」から「ひらがな」へも変換してみましょう。

PS C:\Work>  [Microsoft.VisualBasic.Strings]::StrConv("アイウエオ", $vbHiragana)
あいうえお

このようにアセンブリをロードし、ぜひPowerShellで.NET Frameworkを有効活用してみてください。

コメント

  1. […] [System.Reflection.Assembly]::LoadFromメソッドについては、過去記事「.NETアセンブリをロードするには(PowerShell 入門)」を参照ください。 […]

タイトルとURLをコピーしました