VB.NETのコードを利用する
C#の項でAdd-Typeコマンドレットの利用方法が分かりましたので、今度はVB.NETのコードを利用する例を見てみましょう。
C#で使用したSampleClassをVB.NETに置き換えたものを次に示します。
$source2=@"
Public Class SampleClass2
Public Shared Function SayHello(ByVal Name As String) As String
return "Hello " + Name
End Function
Public Shared Function SayHello2(ByVal Name As String) As String
return "こんにちは" + Name + "さん"
End Function
End Class
"@
このコードをAdd-Typeコマンドレットを使用してPowerShellから利用できるようにするには、次のように入力します。
Add-Type -Language VisualBasic -TypeDefinition $Source
SampleClass2のSayHello2メソッドを利用するには
[SampleClass2]::SayHello2("CodeZine")
のようにします。
実行結果は図2のようになります。

ファイルからの読み込み
既存の資産としてC#やVB.NETのソースファイルがある場合は、直接読み込んで使用できます。
ソースファイルを読み込む場合の構文は次の通りです。
Add-Type -Path 読み込むソースファイルのパス
たとえばC#の例で示したコードがSampleClass.csとして保存されている場合を見てみましょう。
public class SampleClass{
public static string SayHello(string Name)
{
return "Hello " + Name;
}
public static string SayHello2(string Name)
{
return "こんにちは" + Name + "さん";
}
}
この場合は
Add-Type -Path SampleClass.cs
となります。
ファイルから読み込んだ場合も使用方法は変わりません。
[クラス名]::メソッド名
で利用することができます。
まとめ
PowerShellからC#やVB.NETのコードを利用する方法を知っておけば、既存の資産を有効活用することができます。
利用方法はとても簡単ですので、ぜひ身につけて業務に活かしていただければ幸いです。
