說明:由於工作原因,本人使用反射的機會不是很多,所以沒有必要為了炫耀技術而使用這種技術,不過今天有人問到這方面的問題,所以做了一個簡單例子,供初學者參考,代碼如下:
using System;
using System.Collections.Generic;
using System.Text;
namespace AssemblyDemo
{
public class Person
{
private int age;
private string name;
public Person()
{
age = 20;
name = "未知";
}
public Person(int age, string name)
{
this.age = age;
this.name = name;
}
public override string ToString()
{
return String.Format("姓名={0},年齡={1}", name, age);
}
}
}
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;//注意要添加這個命名控制項的引用
namespace AssemblyDemo
{
public class Program
{
public static void Main(string[] args)
{
Assembly asm=Assembly.Load("AssemblyDemo");
Type pt = asm.GetType("AssemblyDemo.Person");//注意這裡用全路徑AssemblyDemo.Person而不是Person
Person p =(Person) Activator.CreateInstance(pt);//建立不帶參數的執行個體
Console.WriteLine(p.ToString());
Person p2 = (Person)Activator.CreateInstance(pt,30,"zhoufoxcn");//建立帶參數的執行個體
Console.WriteLine(p2.ToString());
Console.ReadLine();
}
}
}
本文來自CSDN部落格,轉載請標明出處:http://blog.csdn.net/zhoufoxcn/archive/2007/06/11/1648069.aspx#1450147