Предполагая, что значение изначально было сохранено как JSON в кэше,
cache.StringSet($"Device_Status:{code}", JsonConvert.SerializeObject(myObject)));
затем просто десериализовать возвращаемое значение до нужного типа
public async Task<T> GetValue(string code) {
var cache = RedisConnectorHelper.Connection.GetDatabase();
var value = await cache.StringGetAsync($"Device_Status:{code}");
T resultFromCache = JsonConvert.DeserializeObject<T>(value);
return resultFromCache;
}
Я бы предложил рефакторинг службы кэширования до
public interface IRedisCache {
Task<T> GetValue<T>(string code);
}
С реализацией, используя то, что было предложено выше
public class RedisCache : IRedisCache {
public async Task<T> GetValue<T>(string code) {
var cache = RedisConnectorHelper.Connection.GetDatabase();
var value = await cache.StringGetAsync($"Device_Status:{code}");
T resultFromCache = JsonConvert.DeserializeObject<T>(value);
return resultFromCache;
}
}