C#反射

什么是元数据,什么是反射 

程序是用来处理数据的,文本和特性都是数据,而程序本身(类的本身和BLC中的类)

这些也是数据

有关程序及其数据的数据被称为元数据(metadata),他们保存在程序的程序集中

程序在运行时,可以查看其他程序集或本身的元数据,一个运行的程序查看本身的或查看其他程序集的元数据的行为叫做反射

在C#里Type类描述了一个类所有的信息获取一个Type类有两种方法

Type t=MyInstance.GetType();通过类的实例获取没个类都有一个GetType()方法

Type t=typeof(NamespaceName.ClassName)直接通过typeof运算符获取

Assembly:表示程序集

Enent:表示事件

PropertyInfo:表示属性

MethodInfo:表示方法

Type type = Type.GetType("组合模式.Test");

                Console.WriteLine(type);


                object a=      Activator.CreateInstance(type);

                Console.WriteLine(a);

                object[] parmas = new object[1] { "李永涛" };

                MethodInfo method = type.GetMethod("Print");

                object result=  method.Invoke(a,parmas);

                Console.WriteLine(result.ToString());




特性 在方法前面加上 [Obsolete] 表示该方法弃用

 [Obsolete("")]双引号里的内容会在该方法时看到

但是这样的话方法虽然会提示过时但还是可以用 \

[Obsolete ("hhha",true)]这样的话就可以了在调用该方法时会编译错误

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 今天稍微看了下反射的东西,虽然还不是很明白,但也写写随笔,加深下印象。 1、反射是什么东西? Refl...
    北风知我意阅读 1,259评论 0 0
  • 两个现实中的例子: 1、B超:大家体检的时候大概都做过B超吧,B超可以透过肚皮探测到你内脏的生理情况。这是如何做到...
    幻凌风阅读 4,326评论 0 7
  • C、C++、Java?Java Native Interface(JNI)特辑——C反射java函数 排版不佳建议...
    君华_Joshua阅读 1,290评论 0 1
  • 周代的季札,是吴国国君的公子。有一次,季札出使鲁国时经过了徐国,于是就去拜会徐君。徐君一见到季札,就被他的气质涵养...
    梦123521阅读 402评论 0 0
  • 和不同专业的同学交流才发现自己对设计的理解也仅仅是专业的某一部分。多角度的审视有利于认识某一事物,哪怕是曾经自以为...
    第二组阅读 349评论 0 0