PDA

View Full Version : بدست آوردن نوع کلاس با دانستن اسم آن از نوع رشته



ali_behshahr
شنبه 12 فروردین 1391, 22:42 عصر
سلام من یک کلاس دارم بنام MyClass من رشته "MyClass" رو دارم چه جوری می تونم یک نوع از کلاس بدست بیارم و ازش شی بسازم

C#.net
شنبه 12 فروردین 1391, 23:59 عصر
سلام من یک کلاس دارم بنام MyClass من رشته "MyClass" رو دارم چه جوری می تونم یک نوع از کلاس بدست بیارم و ازش شی بسازم

با استفاده از الگوی رفلکشن که در دات نت هم به خوبی پشتیبانی می شه:


//روش 1
MyClass theClass = (MyClass)Activator.CreateInstance("AssemblyName", "MyClass");

// روش 2
Type t = Type.GetType("MyClass");
MyClass myObject = (MyClass)Activator.CreateInstance(t);


این مثال هم روش فراخوانی متد رو نشون می ده:


using System;
using System.Reflection;

class Program
{
static void Main()
{
Type t = Type.GetType("Foo");
MethodInfo method
= t.GetMethod("Bar", BindingFlags.Static | BindingFlags.Public);

method.Invoke(null, null);
}
}

class Foo
{
public static void Bar()
{
Console.WriteLine("Bar");
}
}