Инициализировать класс строковой переменной в C#?

Можно ли инициализировать класс строковой переменной? У меня есть код на PHP.

<?php
  $classname = "test";

  $oTest = new $classname();

  class test{
  }
?>

Как мне сделать это в C#?

3 ответа

Решение
System.Activator.CreateInstance(Type.GetType(className))

Проблема, однако, заключается в том, что C# 3.0 является статически типизированным языком. Вы не можете просто вызывать случайные методы для возвращаемого объекта. У вас могут быть классы, которые вы можете создать, реализовать некоторый общий интерфейс и привести результат вышеприведенного выражения к интерфейсу или вручную использовать отражение для вызова методов возвращаемого объекта.

Вы можете использовать метод Activator.CreateInstance для достижения аналогичного результата. Но вы должны будете предоставить имя сборки в дополнение к полному имени типа

var instance = Activator.CreateInstance("SomeAssemblyName","Some.Full.Type.Test");

Вы можете использовать Activator.CreateInstance. Документация по различным перегрузкам находится здесь: http://msdn.microsoft.com/en-us/library/system.activator.createinstance.aspx

Другие вопросы по тегам