Ответ 1
Ну, во-первых, ArrayList
не является общим... вы имели в виду List<Customer>
?
Вы можете использовать Type.GetType(string)
, чтобы получить объект Type
, связанный с типом по его имени. Если сборка не является mscorlib или текущим исполняемым типом, вам нужно будет указать имя сборки. В любом случае вам понадобится пространство имен.
Вам действительно нужен универсальный тип? Generics в основном обеспечивают безопасность во время компиляции, что явно не будет иметь большого значения, если вы найдете тип во время выполнения. Вы можете найти это полезным, хотя...
Type elementType = Type.GetType("Customer");
Type listType = typeof(List<>).MakeGenericType(new Type[] { elementType });
object list = Activator.CreateInstance(listType);
Если вам нужно что-либо сделать с этим списком, вам может потребоваться сделать больше общего отражения, хотя... например. для вызова общего метода.