public static void Main()
ConfigBase cfg = new Config1 { Name = "Slim Shady", Num = 1 };
cfg = ChangeConfig(cfg, typeof(Config2));
public static ConfigBase ChangeConfig(ConfigBase input, Type targetType)
return (ConfigBase)JsonSerializer.Deserialize(JsonSerializer.Serialize(input), targetType);
public string Name { get; set; }
public sealed class Config1 : ConfigBase
public int Num {get; set;}
public sealed class Config2 : ConfigBase
public DateTime Dat {get; set;}