有没有办法在使用Powershell Api时将PSObject转换为C#中的字符串



我需要将PSObject转换为String((。是否有任何标准方法可用于完成此任务?不知何故,powershell也会执行ToString((或在ISE控制台上吐出可读流。 我使用了PSSerializer.Serialize(PSObject(,但它序列化了所有内容。我希望在我的应用程序中以Powershell的方式显示所有内容。

无论如何可以将PSObject转换为可读字符串。在我使用以下代码行的那一刻

PSObject.ToString()

PSObject.BaseObject.ToString()

两者都只是打印出完整的类型名称。(例如"System.Collection.HashTable"( 但是我希望完整的显示内容可以看到Powershell的暴露方式。C#

你可以让PowerShell为你格式化它。

foreach (PSObject obj in myPsObjects)
{
var formattedObj =
System.Management.Automation.PowerShell
.Create()
.AddCommand("Write-Output").AddArgument(obj)
.AddCommand("Out-String")
.Invoke();
string message = string.Join(" ", formattedObj);
Console.Write(message);
}

最新更新