2016-03-30 2 views
0

У меня есть следующий квалифицированное имя класса, хранящееся в строке:Как я могу создать экземпляр объекта из строки, содержащей ее имя класса?

string className="Project.LogicLayer.FunctionsLayer.Medic"; 

Теперь мне нужен новый экземпляр класса с помощью этой строки.

Я попытался это, но он всегда возвращается null:

Type t=Type.GetType(className); 
object = Activator.CreateInstance(t); 
+0

как о 'System.Reflection.Assembly.GetExecutingAssembly() CreateInstance (строка имя класса)'.? – esiprogrammer

+2

[Создать экземпляр класса из строки] (http://stackoverflow.com/questions/223952/create-an-instance-of-a-class-from-a-string) –

+0

Является ли класс тем же когда вы вызываете Activator.CreateInstance? и переменная t null или не null? –

ответ

4

Попробуйте this overload из Activator.CreateInstance

Activator.CreateInstance("MedicAssembly", "Project.LogicLayer.FunctionsLayer.Medic"); 
+0

Спасибо, теперь он работает, я основал в вашем примере. 'Assembly asm = Assembly.LoadFrom (« C: \\ Projec \\ AppMedical \\ пакеты \\ BussinessLayer \\ lib \\ net451 \\ Buessinesslayer.dll "); \t \t \t \t \t \t \t типа Т = asm.GetType (Project.LogicLayer.FunctionsLayer.Medic); \t \t \t \t \t \t \t var obj = Activator.CreateInstance (t); ' – MagnunStalin