SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

PowerShell 2.0の新機能

PowerShell 2.0の新機能(6)
――他言語の利用

PowerShell 2.0のAdd-Typeコマンドレット

VB.NETのコードを利用する

 C#の項でAdd-Typeコマンドレットの利用方法が分かりましたので、今度はVB.NETのコードを利用する例を見てみましょう。

 C#で使用したSampleClassをVB.NETに置き換えたものを次に示します。

ヒア文字列を使用して変数にソースコードを代入する(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のようになります。

図2 SayHello2メソッドの実行
図2 SayHello2メソッドの実行

ファイルからの読み込み

 既存の資産としてC#やVB.NETのソースファイルがある場合は、直接読み込んで使用できます。

 ソースファイルを読み込む場合の構文は次の通りです。

Add-Type -Path 読み込むソースファイルのパス

 たとえばC#の例で示したコードがSampleClass.csとして保存されている場合を見てみましょう。

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のコードを利用する方法を知っておけば、既存の資産を有効活用することができます。

 利用方法はとても簡単ですので、ぜひ身につけて業務に活かしていただければ幸いです。

この記事は参考になりましたか?

連載通知を行うには会員登録(無料)が必要です。
既に会員の方はを行ってください。
PowerShell 2.0の新機能連載記事一覧

もっと読む

この記事の著者

HIRO(ヒロ)

HIRO's.NETのHIROです。とある半導体工場のSEです。VB.NET, C#, PowerShellによるプログラミングを楽しんでいます。最近はBlog でPowerShellについて書いています。2008/07/07にPowerShell from Japan!!というサイトを立ち上げまし...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

CodeZine(コードジン)
https://codezine.jp/article/detail/5007 2010/04/12 14:00

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー