假設我有到其中的相關性,且一些參數注入像下面這樣的函數:我怎樣才能斷言參數綁定會成功,沒有副作用?
function Invoke-ACommandLaterOn
{
param
(
# ...
[string] $CommandName,
[object] $PipelineParams,
[object[]] $PositionalParams,
[hashtable]$NamedParams
# ...
)
Assert-ParameterBinding @PSBoundParameters
# ...
# Some complicated long-running call tree that eventually invokes
# something like
# $PipelineParams | & $CommandName @PositionalParams @NamedParams
# ...
}
我想馬上斷言,到$CommandName
參數綁定成功。這就是Assert-ParameterBinding
的意思。但是,我不確定如何實施Assert-ParameterBinding
。
當然我可以嘗試立即調用$CommandName
,但在這種情況下,這樣做會產生副作用,直到其他一些長時間運行的東西首先完成纔會發生。
我怎樣才能斷言參數綁定到一個函數將成功,而無需調用該函數?
你的問題不是很清楚。爲什麼不使用'[Parameter()]'驗證屬性? – TheIncorrigible1
「$ CommandName」後面的命令總是由你定義的嗎?該目標是否可以修改? – briantist
@briantist編號'$ CommandName'可以是任何命令。在我的情況下,它是混合了諸如「New-Item」和自定義命令之類的常用命令。 – alx9r