黑马程序员技术交流社区

标题: .net的反射机制,大家能不能详细的解释下,最好举个例子 [打印本页]

作者: 朱勋    时间: 2011-11-18 09:07
标题: .net的反射机制,大家能不能详细的解释下,最好举个例子
欢迎大家各抒己见
作者: 张振鹏    时间: 2011-11-18 13:21
.net反射就是审查元数据并收集关于它的类型信息的能力。
参考文献:http://www.bianceng.cn/Programming/net/201107/27933.htm
作者: 小石    时间: 2011-11-19 10:28
反射可以获取已加载的程序集和在其中定义的类型(类、接口和值类型)的信息。
static void Main(string[] args)
        {
            string version = Assembly.LoadFile(@"F:\Test2.exe").GetName().Version.ToString();
            Console.WriteLine(version);
            Console.ReadKey();
        }
用这个可以得到Test2的版本号

作者: 朱陈伟    时间: 2011-11-19 15:21
.NET反射的定义:审查元数据并收集关于它的类型信息的能力。

元数据是一种二进制信息,用以对存储在公共语言运行库可移植可执行文件 (PE) 文件或存储在内存中的程序进行描述。将您的代码编译为 PE 文件时,便会将元数据插入到该文件的一部分中。

而将代码转换为 Microsoft 中间语言 (MSIL) 并将其插入到该文件的另一部分中。在模块或程序集中定义和引用的每个类型和成员都将在元数据中进行说明。

当执行代码时,运行库将元数据加载到内存中,并引用它来发现有关代码的类、成员、继承等信息。

元数据以非特定语言的方式描述在代码中定义的每一类型和成员。元数据存储以下信息:

程序集的说明:



1.    标识(名称、版本、区域性、公钥)。

2.    导出的类型。

3.    该程序集所依赖的其他程序集。

4.    运行所需的安全权限。

类型的说明:

1.    名称、可见性、基类和实现的接口。

2.    成员(方法、字段、属性、事件、嵌套的类型)。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2