1.获取同一程序集的类型实例
无参数构造函数
Type t=Type.GetType("AppCode.Employee");
object emp=t.Assembly.CreateInstance("AppCode.Emloyee");
有参数的构造函数
//构造函数参数列表如下
//public Employe(string userid, string username, int age)
Type t=Type.GetType("AppCode.Employee");
//生成参数类型数组
Type[] ts=new Type[3]{ typeof(System.String),typeof(System.String),typeof(System.Int16)};
//获得构造函数
ConstructorInfo mi=t.GetConstructor(ts);
//生成参数值数组
object[] ps=new object[3];
ps[0] = "420106780911326";
ps[1] = "wesker";
ps[2] = 36;
object emp=mi.Invoke(ps);
2.获得不同程序集内的类型的实例。
无参数构造函数
Type t = Assembly.LoadFile(AppDomain.CurrentDomain.BaseDirectory + "\\compenent1.dll").GetType("compenent1.User");
object user = t.Assembly.CreateInstance("compenent1.User");
有参数的构造函数
Type t = Assembly.LoadFile(AppDomain.CurrentDomain.BaseDirectory + "\\compenent1.dll").GetType("compenent1.User");
Type[] ts = new Type[3] { typeof(System.String), typeof(System.String), typeof(System.Int16) };
ConstructorInfo mi = t.GetConstructor(ts);
object[] ps = new object[3];
ps[0] = "420106780911326";
ps[1] = "wesker";
ps[2] = 36;
object user = mi.Invoke(ps);
3.使用反射调用方法
Type t = Type.GetType("AppCode.Employe");
object emp = t.Assembly.CreateInstance("AppCode.Employe");
MethodInfo mi = t.GetMethod("ToString");
string context = mi.Invoke(emp,null).ToString();
4.获得类的信息
通过Type.GetMethods方法获得方法的信息。
通过Type.GetConstructors获得构造函数。
5.使用Activator类实例化类型