Для продолжения ответа Фишермэна, во-вторых, , вы также не можете этого сделать!
Список аргументов типа универсального типа (имена типов в угловых скобках; дляНапример, int в List<int>
) не являются переменными .Это статические токены времени компиляции.Вы не можете сделать это больше, чем то, что вы пытаетесь сделать:
string className = "FileInfo";
**className** theObject = new **className**("C:\\autoexec.bat");
Поскольку C # - статически типизированный язык, типы, обозначаемые токенами name-name, должны быть статически известны во время компиляции.Обратите внимание, что ответы на основе рефлексии здесь оставляют вас со ссылкой, статический тип которой является подтипом ChannelFactory<TChannel>
, не являющимся типичным ChannelFactory
или object
.У вас не может быть статической ссылки во время компиляции на тип, который будет известен только во время выполнения.