2011-09-15 5 views
0

私はいくつかのWebサービスを包み込むpowershellモジュールを持っています。 Webサービスは、複雑な旧来ドットネットオブジェクト(PODOs)に乗り、私はしかし、そう入力用にHashTableまたはPODOを使用するPowerShellコマンドレットを作成するにはどうすればよいですか?

function Get-Stuff ([HashTable]$WhatStuff) { 
    $service = New-ServiceProxy . . . . 
    $request = New-Object GetStuffRequest -Property $WhatStuff; 
    return $service.GetStuff($request); 
    $response; 
} 

のようなリクエストオブジェクトにハッシュテーブルを変換するためにNew-Object MyPODO -Property $ MyHashTableコマンドレットのパラメータのようにHashTablesを使用しています

function Find-Stuff ([HashTable]$KindaStuff) { 
    $service = New-ServiceProxy . . . . 
    $request = New-Object GetStuffRequest -Property $KindaStuff; 
    return $service.SearchStuff($request); 
} 

ハッシュテーブルまたは特定のタイプのPODOいずれかを受け入れるように$ WhatStuffパラメータを飾るための方法のいくつかの並べ替えがあります:、時々私は、その応答オブジェクトを直接ので、のようなリクエストオブジェクトになることができるコマンドレットがありますか?あなたはそれを使用する方法に応じたぶん、以下のような

答えて

1

James Tryanda tweetに私にこの答えを与えました。

答えはParameter Setsです。

1つのパラメータセットでは、HashTable型のパラメータを受け入れ、もう1つでは、PODO型を受け入れます。

0

、:

function Get-Stuff ($WhatStuff) { 

    if(($WhatStuff -isnot [HashTable]) -or ($WhatStuff -isnot [PODOType])){ throw "expect it to be Hashtable or object of type"} 

... 
} 
関連する問題