Bueno, por un lado ArrayList
no es genérico ... ¿quiso decir List<Customer>
?
Puede usar Type.GetType(string)
para obtener el objeto Type
asociado a un tipo por su nombre. Si el ensamblado no es ni mscorlib ni el tipo actualmente en ejecución, deberá incluir el nombre del ensamblado. De cualquier manera, necesitarás el espacio de nombres también.
¿Estás seguro de que realmente necesitas un tipo genérico? Los genéricos en su mayoría proporcionan en tiempo de compilación tipo de seguridad, que claramente no tendrá mucha si encuentra el tipo en tiempo de ejecución. Usted puede que le resulte útil, aunque ...
Type elementType = Type.GetType("Customer");
Type listType = typeof(List<>).MakeGenericType(new Type[] { elementType });
object list = Activator.CreateInstance(listType);
Si necesita hacer nada con esa lista, es posible que también tenga que hacer una reflexión más genérica, aunque ... por ejemplo, para llamar a un método genérico.
John, no existe una implementación genérica de la clase ArrayList en .NET framework. Bob, esto está fuera del alcance de la pregunta, pero si estás programando en C# 2.0+, debes sustituir ArrayList por algo genérico. – senfo