我有一个包含一些Web服务的powershell模块。 Web服务采用复杂的Plain Old Dot Net Objects(PODO),我一直在使用HashTables和cmdlet参数以及 New-Object MyPODO -Property $ MyHashTable 将哈希表转换为像这样的请求对象
function Get-Stuff ([HashTable]$WhatStuff) {
$service = New-ServiceProxy . . . .
$request = New-Object GetStuffRequest -Property $WhatStuff;
return $service.GetStuff($request);
$response;
}
但是,有时我有一个cmdlet,其响应对象可以直接成为请求对象,如下所示:
function Find-Stuff ([HashTable]$KindaStuff) {
$service = New-ServiceProxy . . . .
$request = New-Object GetStuffRequest -Property $KindaStuff;
return $service.SearchStuff($request);
}
是否有某种方法来装饰$ WhatStuff参数以接受特定类型的HashTable或PODO?
答案 0 :(得分:1)
答案 1 :(得分:0)
可能如下所示,具体取决于您希望如何使用它:
function Get-Stuff ($WhatStuff) {
if(($WhatStuff -isnot [HashTable]) -or ($WhatStuff -isnot [PODOType])){ throw "expect it to be Hashtable or object of type"}
...
}