public class BaseClass { public BaseClass() { /* Constructor */ } public static T? JsonDeserialiseAs<T>(string json) where T : BaseClass { /* Do stuff */ }}public class MyClassA : BaseClass { public string? SomeProp { get; set; } // Some properties that BaseClass doesn't have public MyClassA() : base() { /* Constructor */ }}
public class BaseClass { public BaseClass() { /* Constructor */ } public static T? JsonDeserialiseAs<T>(string json) where T : BaseClass { /* Do stuff */ }}public class MyClassA : BaseClass { public string? SomeProp { get; set; } // Some properties that BaseClass doesn't have public MyClassA() : base() { /* Constructor */ }}
The extending classes will have properties that
BaseClass
BaseClass
doesn't have, do knowing the type is important for deserialization. Instead of using