当前位置: 首页 > news >正文

标准北京时间久久网枣庄网站seo

标准北京时间久久网,枣庄网站seo,网络销售代理加盟,网站开发前端规范声明:本文最初是本人写在51CTO的一篇学习笔记,原文地址:http://kestrelsaga.blog.51cto.com/3015222/612118 反射的作用: 1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对…

声明:本文最初是本人写在51CTO的一篇学习笔记,原文地址:http://kestrelsaga.blog.51cto.com/3015222/612118

 

反射的作用:

1. 可以使用反射动态地创建类型的实例,将类型绑定到现有对象,或从现有对象中获取类型;

2. 应用程序需要在运行时从某个特定的程序集中载入一个特定的类型,以便实现某个任务时可以用到反射;

3. 反射主要应用于类库,这些类库需要知道一个类型的定义,以便提供更多的功能。 应用要点: 1. 现实应用程序中很少有应用程序需要使用反射类型 2. 使用反射动态绑定需要牺牲性能 3. 有些元数据信息是不能通过反射获取的 4. 某些反射类型是专门为那些clr 开发编译器的开发使用的,所以你要意识到不是所有的反射类型都是适合每个人的

反射机制调用的步骤

反射相关的命名空间System.reflection,常用的类有Assembly、MemberInfo、EventInfo、MethodInfo 、ConstructorInfo 、PropertyInfo、System.Type

1 加载程序集

2 获取类的类型

3 创建该类的实例

4 调用该实例的方法

详细见下面解说:

1、加载程序集

System.Reflection.Assembly类有两个静态方法:

Assembly.Load(string assemblyname)

Assembly.LoadFrom(string filename)

备注:

这两个方法把程序集加载到应用程序域中。

通常应用程序集名称是一个不包含扩展名的文件名。例如,TestApp.exe和BusinessObjectLibrary.dll的程序集名称分别是TestApp和BusinessObject。

如果希望CLR根据指定的程序集名称找到程序集,应该使用Assembly.Load()方法。但是如果该程序集被强命名(strongly named),你必须同时提供程序集名称和公钥(public key token),以向CLR说明你的意图是:首先试图从GAC(Global Assembly Cache,全局程序集缓存)加载程序集,如果失败,继续在应用所在目录和私有路径目录中寻找并且加载程序集.

另一种加载程序集的途径是通过Assembly.LoadFrom(string filename)。如果你希望加载的程序集超出了CLR的预定探查范围,你可以用这种办法直接从一个文件位置加载程序集。

  2、获取类的类型

Type objType = assm.GetType (“TestApp.BusinessObject”);,

 

■ System.Type与反射相关的常用方法.

GetMethod 获取当前 Type 的特定方法。

GetMethods 获取当前 Type 的方法。

GetProperties 获取当前 Type 的属性 (Property)。

GetProperty 获取当前 Type 的特定属性 (Property)。

GetInterface 获取由当前 Type 实现或继承的特定接口。

GetInterfaceMap返回指定接口类型的接口映射。

GetInterfaces当在派生类中重写时,获取由当前 Type 实现或继承的所有接口。

GetEvent 获取由当前 Type 声明或继承的特定事件。

GetEvents 获取由当前 Type 声明或继承的事件。

InvokeMember 调用当前 Type 的特定成员。

备注:

它返回程序集(本例即assm)中的类类型信息。GetType()方法会重载(overload) 多次。在这个例子中,希望用指定类型名创建一个Type对象,该指定类型名采用命名空间加上类名的形式(如果此类在GAC中,你还必须提供公钥,而版本号为可选参数,可根据情况决定是否提供)。从代表BusinessObject类的Type实例objType中,你能得到很多有用的信息,例如objType.GetMethods()返回BusinessObject类中所有方法的信息,而objType.GetProperties()返回所有属性的信息。

3、创建类的实例

object objInstance = System.Activator.CreateInstance(objType);

4、调用该实例的方法

MethodInfo miEx = objType.GetMethod("DoWork");

miEx.Invoke(objInstance, null);

备注:

最后一步是调用DoWork()方法。miEx.Invoke和bo.DoWork()(BusinessObject bo =new BusinessObject(); bo.DoWork();)完成同样的工作。 MethodInfo.Invoke()方法支持object[]类型的参数,它代表目标方法的输入参数数组。

转载于:https://www.cnblogs.com/KeSaga/p/4354040.html

http://www.lbrq.cn/news/2720701.html

相关文章:

  • 济宁哪里做网站头条关键词排名查询
  • 佛山 移动宽带 限制网站深圳seo推广外包
  • 怎么做会员自动售卡网站郑州seo关键词排名优化
  • 做中英文网站多少钱色盲眼镜
  • 威海网站开发360优化大师官方下载
  • 怎么自己建政府网站做网络推广要学些什么
  • 政府网站建设考核细则工作手机
  • 刚备案的域名如何做网站品牌整合营销
  • 做网站需要什么条件泉州关键词快速排名
  • 广州响应式网站建设太原网站优化
  • 外贸人常去的网站线上销售平台都有哪些
  • 如何看访问网站的dns广告软文是什么意思
  • 网络做翻译的网站枸橼酸西地那非片是什么
  • 石家庄的设计公司seo先上排名后收费
  • 网站模板简易修改高级seo培训
  • 阿里云ecs怎么建网站seo网络搜索引擎优化
  • 华为云速建站可以做英文网站百度知道答题赚钱
  • 网站规划与建设交换友情链接的渠道
  • 房屋装饰广州seo工程师
  • 在线做字网站厦门关键词优化企业
  • 网站建设需要软件前端seo是什么
  • idc销售网站源码宁波seo教程
  • web前端怎么制作网站seo友情链接
  • 怎样把网站打包做百度小程序上海宝山网站制作
  • 软件企业网站建设栏目结构图产品关键词
  • 济南网站开发培训班网页设计代做
  • web网站开发与实现深圳网站设计公司排行
  • 动态网站设计的目的苏州关键词seo排名
  • 如何给自己做的网站留后门怎么推广网址
  • 网站开发需求分析用的图在线生成个人网站
  • ConRFT--RSS2025--中科院自动化所--2025.4.14
  • Android RxJava 过滤与条件操作详解
  • 【万字精讲】 左枝清减·右枝丰盈:C++构筑的二叉搜索森林
  • PCA降维 提升模型训练效率
  • 【Golang】:数据类型
  • 切换VSCODE 中的默认 shell