[JsonConverter(typeof(JsonSubtypes))]
[JsonSubtypes.KnownSubTypeWithProperty(typeof(Example123), "123Configuration")]
public abstract class ExampleBase
public class Example123: ExampleBase
[JsonProperty("123Configuration", Required = Required.Always)]
public Example123Config Configuration123{ get; set; }
public class Example123Config
public string Id { get; set; }
public string Name { get; set; }
public static void Main()
var root = JsonConvert.DeserializeObject<ExampleBase>("{\"123Configuration\": {\n\"Id\": \"1\",\n\"Name\": \"NameValue\"}}");
Console.WriteLine(root.GetType());