Powershell的V3 +删除 “自己” 的对象:
我正在写一个模块交互使用提供各种的cmdlet suiteable。我试图达到的目的是,变量(对象)在不让用户使用remove-variable的情况下被破坏。PowerShell的 - 使用ScriptProperty
例子:
$object = open-object -someparam
$object # returns something
close-object -reference $object
$object # is not defined anymore - similiar to remove-variable
我不能设法得到上述工作,替代方法,如下面也失败了。
$x = New-Object -TypeName PSCustomObject
$x | Add-Member -type NoteProperty -Name Justsomedata -Value Nomeaning
$x | Add-Member -type ScriptMethod -Name killme -Value { $this = $null }
$x
$x.killme()
$x # :-(
有什么建议吗?我想阻止用户运行空间中的变量不再可用。
在正常情况下,都没有对象更多或更少的正确取消分配时,该变量超出范围? –
他们会,是的,问题在于,如果您正在使用cmdlet进行交互式工作,则在会话关闭之前,它们不会超出范围。 – Joel
交互式地,我不相信这是可以做到的,我不确定我能想象到我希望它能够工作的情况,而不是简单地抛出一个错误,如果我使用了一个没有约束的变量,更有效的价值。 –