Estas son preguntas similares: How-to: Load a type from a referenced assembly at runtime using a string in Silverlight, GetType on a class in a referenced assembly fails pero ninguna respuesta funciona.Obtener el tipo de ensamblado al que se hace referencia proporcionando el nombre de clase como cadena?
Tengo un proyecto MVC que extrae datos de una base de datos que incluye los tipos simples como cadenas. Estos tipos se encuentran en un conjunto referenciado, no en el proyecto MVC.
Así, por ejemplo, digamos que mi nombre ensamblaje de referencia es MyFramework
y el nombre de letra normal Car
, el nombre de tipo completo podría ser MyFramework.Cars.Car
o MyFramework.Vehicles.Cars.Car
o alguna otra variación. Todo lo que tengo son el nombre del ensamblado al que se hace referencia y el nombre de clase simple como cadenas. ¿Cómo puedo obtener el tipo independientemente del nombre de tipo completo?
Finalmente, ¿podría escribir una función en el ensamblado al que se hace referencia que llama a GetType() y usar eso en el proyecto MvC para poder renunciar a incluir el nombre del ensamblado? Quiero eliminar conocer el nombre de ensamblado así que pensé que podría escribir un Util en el ensamblaje de referencia como:
namespace MyFramework //the referenced assembly
{
public static class TypeUtil
{
public static Type GetFrameworkType(string typeName)
{
return Type.GetType(typeName);
}
}
}
Y luego, en mi proyecto MVC pude llamarlo sin necesidad de la asamblea como un nombre de cadena. ¿Es posible o necesitaré siempre el nombre del ensamblado?
¿Por qué las otras respuestas no funcionaron? –
@RobertHarvey Es porque solo tengo el nombre de clase simple. No es el nombre de tipo completo. Esas respuestas se basan en conocer el tipo completo. – SventoryMang