[PowerShell V2 CTP3]PowerShellでC#

by HIRO 1. 7月 2009 10:17

どうもご無沙汰しております。HIROです。 

今回は Add-Type コマンドレットを使用して、 PowerShellでC#のクラス直接利用する方法を紹介します。

Add-Type コマンドレットは V2 から搭載されるもので、他の言語のソースを直接PowerShell上で展開して使用できるようにします。

今回はC#のクラスをPowerShell上で文字列として定義し、利用してみたいと思います。

まずはヒア文字列を使用して変数 $source にC#のSampleClassを代入します。

PS> $source = @"
public class SampleClass{
    public static string GetHello(string Name)
    {
        return "Hello " + Name;
    }
    public string GetHello2(string Name)
    {
        return "Hello Hello" + Name;
    }
}
"@

このクラスに

このクラスには GetHelloとGetHello2の2つのメソッドがあります。

早速ですが、Add-Typeコマンドレットで、このクラスをPowerShellに登録しましょう。

Add-Type -TypeDefinition $Source

とします。

登録したクラスの利用ですがスタティックメソッドは

[クラス名]::メソッド

の書式で使用することができます。

Get-Helloメソッドは次のようにして使用できます。
(::と入力した後[Tab]キーを押すとタブ補完が働きます。)

PS> [SampleClass]::GetHello("HIRO")
Hello HIRO

次にstaticでないメソッドはインスタンスを作成してからでないと使用できません。

インスタンスの作成は New-Object コマンドレットを使用します。

PS> $sample = New-Object SampleClass

インスタンスを作成したら

PS> $sample.GetHello2("HIRO")
Hello Hello HIRO

のようにして、利用することができます。

Add-Typeコマンドレットで使用できる言語はC#だけではないので、次回は別の言語を取り上げたいと思います。

現在のレート 5.0 (2人)

  • Currently 5/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

PowerShell V2 CTP3 | コマンドレット

MSMVP受賞と記事リンク

by 牟田口大介 1. 7月 2009 06:36

牟田口です。おはようございます。今日付けでMSMVP for PowerShellを受賞いたしましたので、ここでもご報告させていただきます。今後ともよろしくお願いいたします。

わんくまのほうでTips記事を書きました。

[PSv2]リモートセッションを張るとき明示的に認証する
http://blogs.wankuma.com/mutaguchi/archive/2009/06/30/176828.aspx

これからPSv2の話を向こうでやっていく感じにしたいと思っていますので、随時こちらでもリンクをはりますね。

7/4大阪での講演もまだ若干席に余裕がありますのでご都合がつく方はぜひどうぞ。

最新のブログ

  • Currently 0/5 Stars.
  • 1
  • 2
  • 3
  • 4
  • 5

Tags:

Calendar

<<  7月 2009  >>
月曜火曜水曜木曜金曜土曜日曜
293012345
6789101112
13141516171819
20212223242526
272829303112
3456789

View posts in large calendar
Disclaimer
The opinions expressed herein are my own personal opinions and do not represent my employer's view in anyway.

© Copyright 2010 PowerShell from Japan!!