学习反射遇到的疑问,请帮忙解答一下
吾非大神 2012-06-13 02:21:04 书上讲:
程序集里包含了 元数据 和 编译过的代码(IL代码)等,而元素据的其中一部分 描述了程序中定义的所有类型及其成员相关的信息(数据)。
这里所说的相关信息包含 写代码时给变量或者对象属性赋的初值吗?
比如 Person p = new Person(); p.Name="张三";
编译之后,元数据里有person类型的相关信息,比如有几个字段、几个属性、几个方法、是否继承了其他类、是否实现了某个接口等,但这个 Name属性的值 被记录到哪里去了呢?包含在IL代码中?
继续看书:
这时候出现了一个 Type类,被设计用来包含类型的特性,使用这个类的对象能获取程序使用的类型的信息。对于程序中的每一个类型,clr都会实例化Type类型的对象。
这里又出现了一个类型的信息,和元素据描述的相关类型的信息 这两个是该关联起来看,还是区分来看?
反射是 通过Type类来获取相关类型的信息,并且获得该类型的属性后,还能获得 属性值?
我试着把它们结合起来理解,可出现了上面几处辨不清的地方。
忘各位能给解析一下。