Resolución de interfaz genérica con Autofac

Dado el siguiente código, ¿cómo resuelvo la SomeInstance correcta en autofac?

public class BaseClass {}

public class SubClass1 : BaseClass {}

public class SubClass2 : BaseClass {}

public interface IGenericInterface<T> where T : BaseClass {}

public class SomeInstance1<T> : IGenericInterface<T> where T : SubClass1

public class SomeInstance2<T> : IGenericInterface<T> where T : SubClass2

Quiero elegir SomeInstance1 o 2 según el tipo de genérico en las subclases.

Entonces, por ejemplo, tengo una colección de subclases (SubClase1, 2 ...) y mientras estoy iterando sobre ellas quiero elegir la clase correcta de SomeInstance.

Respuestas a la pregunta(2)

Su respuesta a la pregunta