2016-07-01 12 views
0

で呼び出し可能なPowerShellのクラスを書く、私はPowerShellで、私はそれから呼び出すことができ、そして、コマンドPowerShellのコマンドレット、(および/またはPSCmdlet)を使用して

import-module .\Blah.dll -Verbose 
Read-Blah 
... 

、すべてを

[Cmdlet(VerbsCommunications.Read, "Blah", SupportsShouldProcess = true)] 
public class BlahBlah : PSCmdlet 
{ 
    /// ... 
} 

を作成することができます結構です。

しかし、私はそう、私はオブジェクトを取得し、その後

import-module .\Blah.dll -Verbose 
$myClass = New-Object Blah 
$myClass.Read 
$myClass.Save -File x.txt 
$myClass.BlahBlah 
... 

よう

何かが上記を行うことができますPowerShellでそれを使用することができますクラスではなく機能を作成したいですC#で?もしそうなら、どうですか?

答えて

1

は、.NETアセンブリからクラスをインポートしたい場合は、あなたがAdd-Type、およびないImport-Moduleを使用する必要があります。

Add-Type -Path .\Blah.dll 

この時点で、あなたのアセンブリで定義されているすべてのパブリッククラスは、PowerShellのから利用できるようになります。

+0

ありがとう、しかし、私はどのようにクラス自体を作成するのですか?私が与えた例は、クラスではなく関数を作成するだけです。 –

+0

@SimonGoodman:あなたが尋ねていることを理解しているかどうかはわかりません。あなたが "関数"について話すときには、あなたの 'BlahBlah' CmdLetクラスを意味します。 C#でクラスを作成する場合は、CmdLetから継承しないパブリッククラスを宣言するだけです。これはあなたの質問に答えますか? –

+0

私が意味するのは、 '' [Cmdlet(VerbsCommunications.Read、 "Blah" ... ''関数をPowerShellで '' Read-Blah''として使うことができますが、 '' $ myClass = New-Object Blah''のように利用可能なクラス、または公開されている限りpowershellに利用可能であると言っていますか? –

関連する問題