Deserialize Json C#

Есть интересный вопрос, у меня есть HTTP API, там есть метод getUserById, но API может отдать JSON вида: {'status: 'ok','id': 1, 'name': 'test', 'age': 18, 'login': 'test', 'code': 200}, так и {'status': 'error', 'message': 'User not found', 'code': 404}. Я использую Newtonsoft.Json, и дело такое, что пре десериализации этих данных, мне нужно как то понять, какой именно ответ мне пришел, и если пришла ошибка, сделать соответствующие действия. Пока я делаю так, создаю базовый класс BaseResponse, у него делаю поле public string Code { get; set; }, и при получении ответа десериализую именно этот класс, и при 'status': 'ok' я просто десериализую дочерний класс от BaseResponse (UserResponse), где есть уже нужные поля. Иначе, десериализую дочерний класс от BaseResponse (ErrorResponse), где тоже есть необходимые поля. Можно ли как то улучшить всё это дело? Может есть какие то встроенные методы определения?

internal class BaseResponse 
{
    [JsonProperty("status")] public string Status { get; set; }

    [JsonProperty("code")] public string Code { get; set; }
}

internal class ErrorResponse : BaseResponse
{
    [JsonProperty("status")] public string Status { get; set; }
   
    [JsonProperty("message")] public string Message { get; set; }

    [JsonProperty("code")] public string Code { get; set; }
}


internal class UserResponse : BaseResponse
{
    [JsonProperty("status")] public string Status { get; set; }
   
    [JsonProperty("name")] public string Name { get; set; }

    [JsonProperty("age")] public int Age { get; set; }

    [JsonProperty("login")] public string Login { get; set; }

    [JsonProperty("id")] public int Id { get; set; }
}

Ответы (0 шт):