c#中反射指的是什么

这篇文章主要介绍了c#中反射指的是什么,具有一定借鉴价值,需要的朋友可以参考下。希望大家阅读完这篇文章后大有收获。下面让小编带着大家一起了解一下。

西市ssl适用于网站、小程序/APP、API接口等需要进行数据传输应用场景,ssl证书未来市场广阔!成为成都创新互联公司的ssl证书销售渠道,可以享受市场价格4-6折优惠!如果有意向欢迎电话联系或者加微信:18980820575(备注:SSL证书合作)期待与您的合作!

反射是什么

反射指的是提供封装程序集、模块和类型的对象(Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现有的对象,或从现有对象获取类型并调用其方法或访问其字段和属性。如果代码中使用了特性,可以利用反射对它们进行访问。

反射的使用场景

需要访问程序元数据的特性。

检查和实例化程序集中的类型。

在运行时构建新类型。

使用System.Reflection.Emit中的类。

执行后期绑定,访问在运行时创建的类型的方法

如何使用反射获取类型

获得类型信息有两种方法,一种是得到实例对象,另一种是通过Type.GetType以及Assembly.GetType方法

得到实例对象

在这个方法中仅仅得到的是这个实例对象,得到的方式也许是一个object的引用,也许是一个接口的引用,但是并不知道它的确切类型,如果需要更进一步的了解,就可以通过调用System.Object上声明的方法GetType来获取实例对象的类型对象,比如在某个方法内,我需要判断传递进来的参数是否实现了某个接口,如果实现了,则调用该接口的一个方法:

…
public  void  Process(  object  processObj  ){
Type  t  =  processsObj.GetType();
if(  t.GetInterface(“ITest”)  !=null  )                    
…}…

Type.GetType以及Assembly.GetType方法

另外一种获取类型的方法是通过Type.GetType以及Assembly.GetType方法,如:

Type  t  =  Type.GetType(“System.String”);

需要注意的是,要查找一个类,必须指定它所在的装配件,或者在已经获得的Assembly实例上面调用GetType。本装配件中类型可以只写类型名称,另一个例外是mscorlib.dll,这个装配件中声明的类型也可以省略装配件名称(.Net装配件编译的时候,默认都引用了mscorlib.dll,除非在编译的时候明确指定不引用它),比如:

System.String是在mscorlib.dll中声明的,上面的Type  t  =  Type.GetType(“System.String”)是正确的。

System.Data.DataTable是在System.Data.dll中声明的,那么Type.GetType(“System.Data.DataTable”)就只能得到空引用。
所以

Type t = Type.GetType("System.Data.DataTable,System.Data,Version=1.0.3300.0,  
Culture=neutral,  PublicKeyToken=b77a5c561934e089");

感谢你能够认真阅读完这篇文章,希望小编分享c#中反射指的是什么内容对大家有帮助,同时也希望大家多多支持创新互联,关注创新互联行业资讯频道,遇到问题就找创新互联,详细的解决方法等着你来学习!

网站栏目:c#中反射指的是什么
当前链接:https://www.cdcxhl.com/article32/ghsspc.html

成都网站建设公司_创新互联,为您提供手机网站建设外贸建站网站排名做网站定制网站小程序开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

外贸网站建设