繁体   English   中英

使用params关键字从PowerShell调用C#函数

[英]Calling C# functions from PowerShell with params keyword

我通过以下方式从PowerShell调用C#函数:

// C# code
public void Foo(string param1, int param2, Dictionary<string, string> param3)

# PowerShell code:  
Add-Type -Path $pathToDll

$myClass= New-Object -TypeName MyClass
$dic= New-Object 'System.Collections.Generic.Dictionary[String,String]'
$dic.Add("Key1","Val1")
$dic.Add("Key2","Val2")

$myClass.Foo("Test1", 1, $dic)

但是,如果我想调用带有参数的签名的函数,该怎么办:

public void Foo(string param1, int param2, params string[] param3)

如何从Powershell调用此函数?

如果我这样称呼它:

 $myClass.Foo("Test1", 1, "foo1", "foo2", "foo3")

它显示一个错误:找不到“ Foo”的重载和参数计数:“ 5”。

我认为您必须这样称呼它:

$myClass.Foo("Test1", 1, @("foo1", "foo2", "foo3"))

基本上,您必须使用@()为第三个参数创建一个数组

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM