CSharp · Console
using System;
using System.Collections.Generic;
using System.Text.Json;
using System.Text.Json.Serialization;
public class Program
{
public static void Main()
{
var extension = new DerivedExtensionA();
extension.Properties.Add("SomeKey", "SomeValue");
var allExtensions = new List<Extension>() { extension };
string extensionSerialized =
JsonSerializer.Serialize(
extension);
Console.WriteLine(extensionSerialized);
Console.WriteLine("-----------");
string allExtensionsSerialized =
JsonSerializer.Serialize(
allExtensions, allExtensions.GetType());
Console.WriteLine(allExtensionsSerialized);
}
}
public abstract class Extension
{
public string Name { get; protected internal set; }
}
public class DerivedExtensionA : Extension
{
public DerivedExtensionA()
{
this.Name = "DerivedExtensionA";
Properties = new Dictionary<string, string>();
}
public Dictionary<string, string> Properties { get; protected internal set; }
}