五、程序集的操作
反射应用最多的还是在Dll程序集中的使用。下面介绍如何引用一个程序集,以及怎样利用反射对程序集中的类、方法等进行操作。
//引入一个Dll并对读取其中的所有的成员
Assembly ass=Assembly.LoadFrom(@"E:\ModeTest\Agilent AG34410A.dll"); //用绝对路径的方式引用程序集DLL
Type[] Tt = ass.GetTypes(); //获取Dll中的所有的类
foreach (var item in Tt)
{
Console.WriteLine(item); //输出读到的类
MethodInfo[] mm = item.GetMethods(); //获取每个类中的所有成员信息
foreach (var item2 in mm)
{
Console.WriteLine(item2); //将所有成员信息输出
}
Console.WriteLine("--------------------------------------");
}
Type assmebly_type = ass.GetType("ModeTest.Libraries.Instruments.Multimeters.AG34410A_SetTimeout"); //获取到具体类
object TestAssm = Activator.CreateInstance(assmebly_type); //调用构造函数进行类的实例化
PropertyInfo myProp = assmebly_type.GetProperty("Name"); //获取Name属性
myProp.SetValue(TestAssm, "张三"); //修改Name属性
Console.WriteLine("Name =" + myProp.GetValue(TestAssm)); //输出
Console.WriteLine("--------------------------------------");