2

我有以下代码:

$some_things = "first", "second", "third"

[string[]] $other_things = "first", "seconds", "third"

[int[]] $more_things = 1,2,3,4

Write-Output "Break here"  ## Breakpoint here

在 Visual Studio 2015 中调试上述 PowerShell 脚本时,我注意到以下特点。如果我在监视窗口中从上面检查三个变量,我会看到以下内容:

在此处输入图像描述

奇怪的是,当我展开时,$other_things我看不到任何成员元素。我知道他们在那里,因为我可以使用以下方法遍历数组:

Write-Output "Length: $($other_things.Length)"
ForEach($thing in $other_things) {
    Write-Output "Thing: $thing"
}

并在 VS 的输出窗口中得到以下输出:

在此处输入图像描述

因此,如果我在分配给string[]VS 期间强制转换我的数组变量,似乎无法扩展该数组。如果我不按预期工作。

在 PowerGUI(我常用的 goto PowerShell 调试/脚本 IDE)中运行相同的代码不会出现相同的问题:

在此处输入图像描述

这是 Visual Studio 2015 Powershell 调试器中的错误吗?

(背景:出现这种情况的原因是我正在调用旧版.asmxSOAP Web 服务,并且其中一个服务方法返回一个string[]数组,就像$other_things上面我无法检查的那样。直到我将服务调用包装在数组中子表达式运算符 ( @()),它返回给我一个System.Object[]字符串数组,然后我可以正确检查数组内容吗?)

4

0 回答 0