我正在尝试在Powershell中创建Dictionary并将其传递给C#函数
$params= @{"abc"="123","xyz"=$False};
C#方法接受Dictionary<string,object>
作为参数。
当我尝试从PowerShell调用MyFunc($params)
时,我收到以下错误
无法使用值转换参数“arguments”: “System.Collections.Hashtable”,用于输入“MyFunc” “System.Collections.Generic.Dictionary2 [System.String,System.String]”: “无法创建类型的对象 “System.Collections.Generic.Dictionary2 [System.String,System.String]”
答案 0 :(得分:3)
它说的是,你在PowerShell中创建了HashTable
,但试图在C#中将其用作Dictionary
。你必须把一切都变成一个或另一个。以防万一,这是Powershell的字典声明:
$params = New-Object 'System.Collections.Generic.Dictionary[String,object]'
$params.Add("abc","123")
或者您可以更改C#方法以接受HashTable