我想从PSObject过滤属性并将其转换为字符串值以供进一步使用。 在我的情况下,返回值是一个复杂的点,并且不允许.ToString()转换。
我有一个解决方案,但这只适用于这种情况,如果输入值发生变化,我可能会遇到很多错误。
那么有更通用的方法来获取这些值吗?
using (PowerShell ps = PowerShell.Create())
{
ps.AddCommand("get-help").AddArgument("C:\\Users\\kritzinger\\Work\\test.ps1");
Collection<PSObject> PSOutput = ps.Invoke();
foreach (PSObject outputItem in PSOutput)
{
dynamic description = outputItem.Properties["description"].Value;
// not working
string foo = description.ToString();
// foo = "System.Management.Automation.PSObject[]"
foreach (dynamic item in description)
{
// not working
string bar = item.ToString();
// bar = ""
// working!
string moo = item.Text;
// moo = "here is the description of the poweshell script"
}
}
}
答案 0 :(得分:0)
使用此
string foo = Convert.ToString(description).ToString();
它会起作用!