.net C# 反射技术使用例子

来源:互联网 发布:安装包异常 淘宝伴侣 编辑:程序博客网 时间:2024/06/05 05:14

  获得实例的方法

  1.获得同一程序集内的类型的实例。

  无参数构造函数

  Type t = Type.GetType("AppCode.Employe");

  if (t == null)

  {

  textBox1.Text = "Create Type Error";

  return;

  }

  object emp = t.Assembly.CreateInstance("AppCode.Employe");

  if (emp == null)

  {

  textBox1.Text = "Create Instance Error";

  return;

  }

  StringBuilder sb = new StringBuilder();

  sb.AppendLine("Type:" + t.FullName);

  sb.AppendLine("Context:");

  sb.AppendLine(emp.ToString());

  textBox1.Text = sb.ToString();

  有参数构造函数

  Type t = Type.GetType("AppCode.Employe");

  if (t == null)

  {

  textBox1.Text = "Create Type Error";

  return;

  }

  //构造函数参数列表如下profile.yahoo.com/ZSIZEEVM3ZJJ2V45EX7CC5522Y/

  //public Employe(string userid, string username, int age)

  //生成参数类型数组

  Type[] ts = new Type[3] { typeof(System.String),typeof(System.String), typeof(System.Int16) };

  //获得构造函数

  ConstructorInfo mi = t.GetConstructor(ts);

  if (mi == null)

  {

  textBox1.Text = "Create ConstructorInfo Error";

  return;

  }

  //生成参数值数组

  object[] ps=new object[3];

  ps[0] = "420106780911326";

  ps[1] = "wesker";

  ps[2] = 36;

  object emp=mi.Invoke(ps);

  StringBuilder sb = new StringBuilder();

  sb.AppendLine("Type:" + t.FullName);

  sb.AppendLine("Context:");

  sb.AppendLine(emp.ToString());

  textBox1.Text = sb.ToString();

  2.获得不同程序集内的类型的实例。

  比如当前窗体程序要通过反射获得一个名为"compenent1"(文件名为compenent1.dll)的程序集中的类型的实例。

0 0