Obtenga tipos disponibles en CoreCLR

Es fácil obtener todos los tipos disponibles (para algunas interfaces, por ejemplo) en el antiguo .NET, pero no puedo encontrar la forma de hacerlo en el nuevo CoreCLR.

Lo que quiero hacer es tener una función como GetRepository, que debería buscar la implementación existente de IRepository y devolver una nueva instancia de ese tipo. La implementación se ubicará en los diferentes proyectos.

Entonces, en .NET puedo usar algo como esto:

AppDomain.CurrentDomain.GetAssemblies().SelectMany(a => a.GetTypes())

La única solución que tengo para CoreCLR por ahora es:

public T GetRepository<T>()
{
  foreach (Type type in typeof(T).GetTypeInfo().Assembly.GetTypes())
    if (typeof(T).IsAssignableFrom(type) && type.GetTypeInfo().IsClass)
      return (T)Activator.CreateInstance(type);

  return default(T);
}

Pero funciona solo si la interfaz y la implementación se encuentran en el mismo ensamblaje (y este no es mi caso).

¡Gracias!