So I have a method that accepts an argument to provide the type, and I want to pass in this type into a deserialization of some data that I am getting back from Redis Cache. But it says "(variable name) is a variable but is used as a type". Does anyone know how to fix this?
protected async Task<BaseModel> GetData<T>(string id, Type modelType) {
    var data = await this.cacheDatabase.StringGetAsync(key).ConfigureAwait(false);
    var response = JsonConvert.DeserializeObject<modelType>(data); // error here
    return response;
}
If I hardcode the model type in the deserialization, it works perfectly, but of course this is not ideal since I would like this method to handle various different model types. See below for the working code.
protected async Task<BaseModel> GetData<T>(string id) {
    var data = await this.cacheDatabase.StringGetAsync(key).ConfigureAwait(false);
    var response = JsonConvert.DeserializeObject<Dog>(data); // works fine as Dog is a child class of BaseModel.
    return response;
}
 
    