How can I parse an PSObject instance to a C# POCO model entity?
The PSObject instance is a dynamic object that contains these properties:
@{Name=David; Diff=0.0268161397964839; File=Output.txt}
I have C# POCO model that fits those fields.
Is there a nice way to cast?
You either need to convert the PSObject
instance to some common representation or iterate over PSObject.Properties
and fill the fields of the POCO using reflection.
This simple serialize-deserialize code with Newtosoft.Json implements the first way and may work well for simple cases:
public class MyInfo
{
public string Name { get; set; }
public double Diff { get; set; }
public string File { get; set; }
}
static void Main(string[] args)
{
PSObject obj = PSObject.AsPSObject(new { Name = "David", Diff = 0.2, File = "output.txt" });
var serialized = JsonConvert.SerializeObject(obj.Properties.ToDictionary(k => k.Name, v => v.Value));
Console.WriteLine(serialized);
var deseialized = JsonConvert.DeserializeObject<MyInfo>(serialized);
Console.WriteLine($"Name: {deseialized.Name}");
Console.WriteLine($"Diff: {deseialized.Diff}");
Console.WriteLine($"File: {deseialized.File}");
}
Output:
{"Name":"David","Diff":0.2,"File":"output.txt"}
Name: David
Diff: 0,2
File: output.txt
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.