摘要:
在目录下新建一个程序文件,并命名为LateBinding.cs,编写代码如代码7.12所示。代码7.12 晚期绑定:LateBinding.cs+展开-C#usingSystem;//导入相应的命名空间usingSystem.Reflection;usingSystem.IO;classLateBinding{staticvoidMain(string[]args){Console.Write("/n【1】请输入传递给OldClass类Method静态方法的参数:");stringinputA=Console.ReadLine();Console.Write("/ 阅读全文
posted @ 2011-01-27 10:15
cpcpc
阅读(514)
评论(0)
推荐(0)
摘要:
面试例题8:如何动态加载外部程序集并用反射获取指定类型的信息?考点:学习动态加载外部程序集的基本方法,理解Assembly类的Load()方法和LoadFrom()方法的区别。出现频率:★★★解答 通过System.Reflection命名空间下的Assembly类可以动态加载外部程序集,可选方法为Load()方法和 LoadFrom()方法。Load()方法用于加载当前程序集位于相同目录下的外部程序集,LoadFrom()方法可以加载其他目录中的程序集。以上示例中的ClassRef.exe程序作为需要加载的外部程序集,进一步获取其指定类型的信息。在目录下新建一个程序文件,并命名为 AppCl 阅读全文
posted @ 2011-01-27 10:13
cpcpc
阅读(497)
评论(0)
推荐(0)
摘要:
在命令行下编译ClassRef.cs,执行ClassRef程序,程序提示"请输入所检测的类型名称:",输入"ClassA",运行结果如图7.9所示。 主程序首先进入一个不限次数的while循环,循环中首先判断输入值是否为"quit"。如果输入为"quit"则跳出循环,否则将输入值当做类型名称字符串传递给Type类的GetType()方法,获取Type对象的引用tp,并再次传递给ClassB的Ref()方法。执行完Ref()方法后,程序将继续循环,提示"请输入所检测的类型名称:"直到用户输入&qu 阅读全文
posted @ 2011-01-27 10:12
cpcpc
阅读(1119)
评论(0)
推荐(0)
摘要:
解析 反射技术在运行时可以获取程序集中每个类型的成员,包括字段、方法、属性、事件等,并进一步获取这些成员的详细信息。反射技术还可以动态载入外部程序集(私有程序集或共享程序集),获取程序集中类型的相关数据。有意思的是从外部动态载入的程序集还可通过晚期绑定,创建外部程序集中某类型的实例(对象),并且可以进一步调用其成员(如方法和属性)。在这个过程中,并不知道外部程序集的任何信息(甚至不知道该程序集是否存在)。 简而言之,反射技术以编程的方式获取程序集的元数据信息,通常情况下,只能通过ildasm.exe程序载入程序集或模块,才能读取其元数据。 NET的反射技术从程序集中获取各种细节类型元数据(如F 阅读全文
posted @ 2011-01-27 10:10
cpcpc
阅读(2723)
评论(0)
推荐(0)
摘要:
反射技术在多数.NET程序中不会被使用,但是它的确是非常重要的技术,在很多应用程序中有着不可替代的作用。.Net的应用程序体系分为以下4个层次:程序集(Assembly)、模块(Module)、类型(Class)和类型成员(Member),反射技术可以在程序运行时获取这4个层次的元数据信息。只要掌握了反射技术实现的基本原理,就可以轻松解决各种形式的反射技术问题。说明:应用程序域是程序集层次之上的更大的容器,一个应用程序域可以装载多个程序集,本章暂不讨论。 面试例题6:如何使用反射技术获取指定类型中方法的完整信息? 考点:反射技术的基本知识以及获取Type对象的方式,了解System.Refle 阅读全文
posted @ 2011-01-27 10:09
cpcpc
阅读(884)
评论(0)
推荐(0)