I am getting all instances of classes that implement an interface but I need to pass that class type into a Type field and I keep getting "x is a variable but used like a type". How can I get these classes as their type?
Here is my code that pulls in what implements the Interface ICacheData:
private IEnumerable<Type> GetCachables()
{
    var type = typeof(ICacheData);
    var types = AppDomain.CurrentDomain.GetAssemblies()
        .SelectMany(s => s.GetTypes())
        .Where(p => type.IsAssignableFrom(p));
    return types;
}
But when trying to apply them into this call, I get an error.
var cacheables = GetCachables();
foreach(var cacheable in cacheables)
{
       var cacheItems = LoadAllFromCacheAsync<cacheable>(db, "");
}
LoadAllFromCacheAsync is defined as:
protected static async Task<List<T>> LoadAllFromCacheAsync<T>(DbEntities db, string eagerLoadProps = "") where T : class, ICacheData
