¿Por qué no puedo usar Type.GetType () en genéricos?

Estoy tratando de deshacerme de algunas referencias mediante el uso de la representación de cadena de ciertos tipos. Pero el compilador no me permite hacerlo de la manera que quiero en caso de métodos genéricos. Intenté esto:

IContainer container = components as IContainer;
Type type = Type.GetType("MyNamespace.MyType");
foreach (var component in container.Components.OfType<Type.GetType("MyNamespace.MyType")>()) {
    ...
}

Y esto

foreach (var component in container.Components.OfType<type>()) {
    ...
}

Para el primer bucle obtengo esto: "El operador '<' no se puede aplicar a operandos de tipo 'grupo de métodos' y 'System.Type', y por el segundo la variable está fuera de alcance por alguna razón. ¿Por qué está sucediendo esto? y hay alguna forma de evitarlo? Gracias de antemano.

Respuestas a la pregunta(3)

Su respuesta a la pregunta