public int Status { get; set; }
public string Message { get; set; }
public object Result { get; set; }
public class ApiResponse<T> : ApiResponse
get { return (T)base.Result; }
set { base.Result = value; }
public string Text { get; set; }
public static void Main()
object data = new ApiResponse<MyDTO> { Result = new MyDTO { Text = "test" } };
var serialized = JsonConvert.SerializeObject(data);
var deserialized = (ApiResponse<MyDTO>)JsonConvert.DeserializeObject(serialized, typeof(ApiResponse<MyDTO>));
Console.WriteLine(((ApiResponse)deserialized).Result.GetType());
Console.WriteLine(JsonConvert.SerializeObject(deserialized.Result));