So serialisieren Sie abgeleitete Klassen mit dem Polymorphismus nach JSONC#

Ein Treffpunkt für C#-Programmierer
Guest
 So serialisieren Sie abgeleitete Klassen mit dem Polymorphismus nach JSON

Post by Guest »

Wenn ich die folgenden Klassen habe: < /p>

Code: Select all

public class ParentClass
{
public int ParentProperty { get; set; } = 0;
}
public class ChildClass : ParentClass
{
public string ChildProperty { get; set; } = "Child property";
}
public class Container
{
public double ContainerCapacity { get; set; } = 0.2;
public List ClassContainer { get; set; } = new List();
}
und wenn ich dann die folgenden Objekte in Programm erstelle.

Code: Select all

// Objects
var container = new Container() { ContainerCapacity = 3.14 };
var parent = new ParentClass() { ParentProperty = 5 };
var child = new ChildClass() { ParentProperty = 10, ChildProperty = "value" };
container.ClassContainer.Add(parent);
container.ClassContainer.Add(child);

// Serialization
var serializerOptions = new JsonSerializerOptions() { WriteIndented = true };
var containerJson = JsonSerializer.Serialize(container, serializerOptions);
Console.WriteLine(containerJson);
Erwartete Ausgabe:

Code: Select all

{
"ContainerCapacity": 3.14,
"ClassContainer": [
{
"ParentProperty": 5
},
{
"ChildProperty": "value",
"ParentProperty": 10
}
]
}

< /code>
Tatsächliche Ausgabe: < /p>
{
"ContainerCapacity": 3.14,
"ClassContainer": [
{
"ParentProperty": 5
},
{
"ParentProperty": 10
}
]
}
Wie kann ich sicherstellen, dass die Eigenschaft ChildProperty auf Child auch serialisiert wird? Wie würde ich es für Grenzflächenpolymorphismus vorgehen?

Quick Reply

Change Text Case: 
   
  • Similar Topics
    Replies
    Views
    Last post