oop - Is it possible to use anything similar to $this to refer to the current object in Powershell? -
i'm attempting make powershell module work external api. have custom object looks this:
$subscriber = new-module -ascustomobject -scriptblock { [string] $emailaddress=$null [string] $name=$null [bool] $resubscribe=$false [bool] $restartsubscriptionbasedautoresponders=$false export-modulemember -variable * -function * }
now, i'd object able implement function outputs in json format. i'm aware normal way is: $subscriber | convertto-json
instead, i'd object implement along these lines:
$subscriber = new-module -ascustomobject -scriptblock { [string] $emailaddress=$null [string] $name=$null [bool] $resubscribe=$false [bool] $restartsubscriptionbasedautoresponders=$false function tojson { $this | convertto-json } export-modulemember -variable * -function * }
but problem there no $this variable nor have been able find information other way it. attempting misuse powershell such degree isn't supported @ all? or missing obvious? i'm open critique , advice :)
the variables define @ module scope (eg. $emailaddress
) can accessed1 inside functions defined in module.
however convertto-json
converts single object pipeline.
therefore better defining single object, , passing through:
$subscriber = new-module -ascustomobject -scriptblock { $data = new-object psobject -property @{ emailaddress=$null; name=$null; resubscribe=$false; restartsubscriptionbasedautoresponders=$false } function tojson { $data | convertto-json } export-modulemember -variable * -function * }
but wouldn't fix -ascustomobject
, conversion single object done inside tojson
:
$subscriber = new-module -ascustomobject -scriptblock { [string] $emailaddress=$null [string] $name=$null [bool] $resubscribe=$false [bool] $restartsubscriptionbasedautoresponders=$false function tojson { new-object psobject -property @{ emailaddress=$emailaddress; name=$name; resubscribe=$resubscribe; restartsubscriptionbasedautoresponders=$restartsubscriptionbasedautoresponders } | convertto-json } export-modulemember -variable * -function * }
(and, far aware, there no single $this
in case: there isn't .psm1
type modules.)
1 , updated if use script:
scope prefix.
Comments
Post a Comment