Powershell 中对象数组内的字符串数组
string array inside object array in Powershell
我试图通过 powershell 从 c# dll 调用一个函数,它需要一个对象数组作为参数,我需要在其中传递字符串,但我不知道如何。
我需要做什么:
C# 版本:
printCustom(new object[] {new string[] {"hello", "its", "working"}});
我需要从powershell调用这个函数,但是如何传递参数?
printCustom([object[]]@(//now?//));
谢谢。
使用一元数组运算符 ,
将可枚举类型包装在数组中 - 这将防止 PowerShell 在构建实际传递给的数组时解开 string-array方法:
[TargetType]::printCustom(@(,'hello its working'.Split()))
我们来测试一下:
# Generate test function that takes an array and expects it to contain string arrays
Add-Type @'
using System;
public class TestPrintCustom
{
public static void printCustom(object[] args)
{
foreach(var arg in args){
foreach(string s in (string[])arg){
Console.WriteLine(s);
}
}
}
}
'@
[TestPrintCustom]::printCustom(@(,"hello its working".Split()))
如预期的那样打印:
hello
its
working
我试图通过 powershell 从 c# dll 调用一个函数,它需要一个对象数组作为参数,我需要在其中传递字符串,但我不知道如何。
我需要做什么:
C# 版本:
printCustom(new object[] {new string[] {"hello", "its", "working"}});
我需要从powershell调用这个函数,但是如何传递参数?
printCustom([object[]]@(//now?//));
谢谢。
使用一元数组运算符 ,
将可枚举类型包装在数组中 - 这将防止 PowerShell 在构建实际传递给的数组时解开 string-array方法:
[TargetType]::printCustom(@(,'hello its working'.Split()))
我们来测试一下:
# Generate test function that takes an array and expects it to contain string arrays
Add-Type @'
using System;
public class TestPrintCustom
{
public static void printCustom(object[] args)
{
foreach(var arg in args){
foreach(string s in (string[])arg){
Console.WriteLine(s);
}
}
}
}
'@
[TestPrintCustom]::printCustom(@(,"hello its working".Split()))
如预期的那样打印:
hello
its
working