Es necesario crear instancias en tiempo de ejecución de una clase que utiliza los genéricos, como class<T>
, sin conocer previamente el tipo T tendrán, me gustaría hacer algo así:¿Es imposible usar Generics de forma dinámica?
public Dictionary<Type, object> GenerateLists(List<Type> types)
{
Dictionary<Type, object> lists = new Dictionary<Type, object>();
foreach (Type type in types)
{
lists.Add(type, new List<type>()); /* this new List<type>() doesn't work */
}
return lists;
}
... pero hipocresía. Creo que no es posible escribir en C# dentro de los corchetes genéricos una variable de tipo. ¿Hay alguna otra forma de hacerlo?
¿Puede dar un motivo por el que desea crear un objeto genérico seguro en tiempo de ejecución? –
Lo he hecho varias veces, especialmente al transferir memorias intermedias de protocolo. –
Estoy haciendo un adaptador a un marco de persistencia aquí en mi trabajo, y las clases necesitan esta información para realizar su trabajo. –