与哈希表/字典参数Powershell的C#Cmdlet的

问题描述:

谁能告诉我如何将参数添加到我的自定义C#的cmdlet这是一个Hashtable/StringDictionary,这样我可以打电话给我的命令用它类似于这样的方式:与哈希表/字典参数Powershell的C#Cmdlet的

CustomCmdlet -File $someFilePath ` 
       -StringDictionary/HashtableParameter @{ 
          "name1"="value1" 
          "name2"="value2" 
          "name3"="value3" 
          ... 
         } 

我根本找不到任何文档/示例,它清楚简单地解释了如何执行此操作,或者甚至可以自定义cmdlet。

我能不能用:

[Parameter(Mandatory = false, Position = 9)] 
    public Dictionary<string,string> FieldValues { get; set; } 

    [Parameter(Mandatory = false, Position = 9)] 
    public HashTable FieldValues { get; set; } 

    ... 

还是别的什么?

亲切的问候

+0

“我能不能用......?” - 是的,它看起来是正确的。 – 2012-02-04 06:25:43

+1

至少它肯定应该为'Hashtable'工作。然后,您可以将值'@ {...}'从脚本传递到cmdlet。 – 2012-02-04 13:43:42

您可以使用以下

public Hashtable[] SearchCriteria { get; set; } 

有像

Start-Process calc -PassThru | Get-UIAWindow | Get-UIAButton -SearchCriteria @{automationid="13*";name="[3-5]"},@{name="c*"},@{name="a*"},@{isenabled="false"} | Read-UIAControlName 

的funcitonality输出是

清除进入

清除

添加

最大化

关闭

+0

“Hashtable”类位于System.Collections命名空间中,以防其他人查找。 – Nick 2016-06-23 13:14:37