モジュールが読み込まれると、PowerShell は初期化コードを呼び出しますか?
Perl BEGIN ブロックまたはコンストラクターのようなものを探しています。
NEW-MODULE と IMPORT-MODULE はどちらも PSCustomObject を返します。スクリプト内の長いコードを避けるために、カスタム オブジェクトをモジュールにカプセル化しようとしています。オープン コードで適切にテストされる 1 つの方法は次のとおりです。
$m = new-module -scriptblock {
New-Object PSCustomObject |
Add-Member NoteProperty -name person -value Frodo -passthru |
Add-Member ScriptMethod Who { $this.person } -passthru |
Add-Member ScriptMethod Mod {
param($x)
$this.person = $x
} -passthru
} -ascustomobject -returnresult
理想的には、このコードをモジュールにドロップして、次のようなものを使用したいと思います。
$MyObj = Import-Module -Name ".\MyPackage" -AsCustomObject
最初のスニペットが提供するのと同じように、MyObj をオブジェクトへのハンドルにします。
提案をいただければ幸いです。