So durchlaufen Sie die BaseObject-Eigenschaft von PSObject in C#C#

Ein Treffpunkt für C#-Programmierer
Guest
 So durchlaufen Sie die BaseObject-Eigenschaft von PSObject in C#

Post by Guest »

Ich habe eine Liste von PSObject-Elementen, die beim Aufruf der Methode .Invoke() zurückgegeben werden, während das Paket System.Management.Automation verwendet wird. Beim Debuggen kann ich die Werte der Objekte, die ich drucken möchte, in den Eigenschaften BaseObject und ImmediateBaseObject sehen. Wenn Sie jedoch die foreach-Schleife verwenden, um die Ergebnisse zu durchlaufen, und die BaseObjects jedes Elements drucken, wird nur der Typ des Elements gedruckt (

Code: Select all

System.Collections.ArrayList
). Wie speichere ich den Wert von BaseObjects in einer Variablen?
Hier ist der Code und einige Screenshots:

Code: Select all

using (var ps = PowerShell.Create())
{
var results = ps.AddScript(File.ReadAllText(@".\PSScripts\test_func2.ps1")).Invoke();
foreach (PSObject result in results)
{
if (result != null)
{
outList.Add(result.BaseObject.ToString())
}
}
}
Dies ist das Ergebnisobjekt während des Debuggens, das nur Arrays mit relevanten Daten enthält. Aus Datenschutzgründen ausgeblendet.
Image

Dies ist das Ergebnis Objekt > BaseObject-Ansicht während des Debuggens. Die Mitgliedereigenschaft des Ergebnis-Objekts enthält nicht die relevanten Daten.
Image

Und das ist die Ausgabe, die ich bekomme, wenn ich den obigen Code ausführe:
Image

Vielen Dank im Voraus.

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post