c# - usa - Creando un objeto genérico basado en una variable Tipo
las variables locales con tipo implícito se deben inicializar (2)
Qué hacer si necesito llamar a una función de myObject como
Type type = typeof(MyObject<>).MakeGenericType(objectType);
object myObject = Activator.CreateInstance(type);
myobject.SetValue("1212");
Esta pregunta ya tiene una respuesta aquí:
Necesito crear un objeto genérico basado en un tipo que está almacenado en una base de datos. ¿Cómo puedo lograr esto? El siguiente código (que no se compilará) explica lo que quiero decir:
string typeString = GetTypeFromDatabase(key);
Type objectType = Type.GetType(typeString);
//This won''t work, but you get the idea!
MyObject<objectType> myobject = new MyObject<objectType>();
¿Es posible hacer este tipo de cosas?
Gracias
Type type = typeof(MyObject<>).MakeGenericType(objectType);
object myObject = Activator.CreateInstance(type);
También - cuidado; Type.GetType(string)
solo verifica el ensamblado en ejecución y algunos ensamblados del sistema; no escanea todo Si usa un nombre calificado de ensamblador, debería estar bien; de lo contrario, es posible que deba obtener primero el Assembly
y usar someAssembly.GetType(string)
.