1:元数据
有关程序及其类型的数据即为元数据,被保存在程序的程序集中。
那么什么叫反射呢?程序在运行的时候,可以查看其它程序集或者自己本身的元数据,这个行为称之为反射。
要获取程序中元数据,可以用抽象类Type
2:Type抽象类
每个类都对应一个Type对象,这个Type对象保存了该类的方法,字段和属性等,比如定义一个类myClass,有
方法:fun1,fun2
私有字段:id,age
公有字段:publicField1,publicField2,publicField3Name
属性:Name, Name1, Name2
class myClass
{
//私有字段
private int id;
private int age;
//公有字段
public string publicField1; //Type.GetFields()只能获取所有公共字段
public int publicField2;
public DateTime publicField3;
//公有属性(注意C#中属性和字段有区别)
public string Name {
get; set; }
public string Name2 {
get; set; }
public string Name3 {
get; set; }
/// <summary>
/// get和set相当于
/// private name;
/// public Name
/// {
/// get{return name;}
/// set{name=value;}
/// }
/// </summary>
///
public void fun1()
{
}
public void fun2()
{
}
}
可以通过类的对象获取其Type对象
myClass m = new myClass();
var type = m.GetType();
也可以通过类直接获取其Type对象
var type