2016-03-30 3 views
0

Ich habe folgende qualifizierte Klassennamen in einem String gespeichert:Wie kann ich ein Objekt aus einer Zeichenfolge instanziieren, die seinen Klassennamen enthält?

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

Jetzt brauche ich eine neue Instanz der Klasse von diesem String verwenden.

habe ich versucht, diese aber es gibt immer null:

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

wie etwa 'System.Reflection.Assembly.GetExecutingAssembly() CreateInstance (String classname)'.? – esiprogrammer

+2

[Erstellen Sie eine Instanz einer Klasse aus einer Zeichenfolge] (http://stackoverflow.com/questions/223952/create-an-instance-of-a-class-from-a-string) –

+0

Ist die Klasse in der gleichen Assembly, wie Sie Activator.CreateInstance aufrufen? und ist Variable t null oder nicht null? –

Antwort

4

Versuchen this overload von Activator.CreateInstance

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

Danke, jetzt funktioniert es, ich habe in Ihrem Beispiel basiert. 'Assembly asm = Assembly.LoadFrom (" C: \\ Projekt \\ AppMedical \\ packages \\ BussinessLayer \\ lib \\ net451 \\ Buessinesslayer.dll "); \t \t \t \t \t \t \t Typ t = asm.GetType (Project.LogicLayer.FunctionsLayer.Medic); \t \t \t \t \t \t \t var obj = Activator.CreateInstance (t); ' – MagnunStalin

Verwandte Themen