谈谈C#反射(Reflection)

反射是什么?官方给出的解释:反射提供了封装程序集、模块和类型的对象(System.Type类型)。可以使用反射动态创建类型的实例,将类型绑定到现有对象,或从现有对象获取类型并调用其方法或访问其字段和属性。

个人理解:在运行态下,动态访问、修改自身的功能。今天我们利用反射为程序动态加载程序集(Assembly),System.Reflection命名空间是我们实现该功能的基础。

代码如下:

public static void Main(string[] args)
{//AssemblyResolve事件在.Net对程序集解析失败时触发,返回一个Assembly对象。AppDomain.CurrentDomain.AssemblyResolve += new ResolveEventHandler(OnResolve);//功能Startup();
}public static Assembly OnResolve(object sender, ResolveEventArgs args)
{var assemblyName = new AssemblyName(args.Name);string path = "";if (assemblyName.Name.EndsWith("WuXiaoBo"))path = @"C:\Program Files\Java\wuxiaobo.dll";if (string.IsNullOrEmpty(path) == false&& File.Exists(path))return Assembly.LoadFrom(path);return null;
}public static void Startup()
{//调用程序集中包含的接口,接口不能直接放在Main中。
}

代码很简单,就不过多解释了。

 

参考资料:

https://docs.microsoft.com/zh-cn/dotnet/api/system.appdomain.assemblyresolve?view=netframework-4.6.1

https://www.cnblogs.com/darrenji/archive/2014/09/26/3995450.html

http://blog.junwen38.com/archives/656

转载于:https://www.cnblogs.com/boxy/p/11453809.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482428.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在新的数学证明中,人工智能取胜

来源:ScienceAI编辑:绿萝一个以 AlphaGo 等人工智能系统为原型的新计算机程序解决了组合学和图论中的几个未解决问题。去年 3 月,爱荷华州立大学(Iowa State University)的数学家 Leslie Hogben 和 Carolyn Reinhart 收…

day44-前端知识之HTML内容

什么是前端?什么是后端? # 任何与用户直接打交道的操作界面都可以称之为前端,前端跟python没有任何关系 比如:电脑界面,手机界面,平板界面# 暂时先理解成 幕后操作者(不直接与用户打交道)为什么要学前端? 因为全栈开发工程师就是同时懂前端和后端 1.信心满满 老子一定能学会…

车路协同让城市更智慧

来源:深城物联在高速发展的现代社会,纷繁复杂的城市道路交织成奔腾不息的交通动脉。今年,全国政协委员、百度董事长兼首席执行官李彦宏在提案中关注“智能交通”“自动驾驶”。在新一代信息技术不断发展的背景下,汽车与城市道路的…

gin-jwt对API进行权限控制

前言 之前文章简单介绍了如何运行ginvue的前后端分离开源项目,该项目是学习了Gin实践教程后结合vue-element-admin写的,该教程讲得很详细,适合入门Gin。本篇文章将介绍ginvue的前后端分离开源项目中如何使用gin-jwt对API进行权限验证。 安装g…

Michael Brostein 最新几何深度学习综述:超越 WL 和原始消息传递的 GNN

来源:前沿科技编译:OGAI编辑:陈彩娴如何突破基于 WL 测试和消息传递机制的 GNN 的性能瓶颈?且看几何深度学习旗手、牛津大学教授 Michael Brostein 如是说。图可以方便地抽象关系和交互的复杂系统。社交网络、高能物理、化学等研究…

day45-前端CSS

1.0 CSS介绍 CSS(Cascading Style Sheet,层叠样式表)定义如何显示HTML元素。 当浏览器读到一个样式表,它就会按照这个样式表来对文档进行格式化(渲染)。 2.0 CSS语法 2.1 CSS实例 每个CSS样式由两个组成部分&#xff1…

人工智能克服了类脑硬件的绊脚石

来源:ScienceAI编辑:萝卜皮当今最成功的人工智能算法——人工神经网络,松散地基于我们大脑中复杂的真实神经网络网络。但与我们高效的大脑不同,在计算机上运行这些算法会消耗巨大的能量:最大的模型在其生命周期中消耗的…

sirim认证

www.sirim-global.com 转载于:https://www.cnblogs.com/daixh/p/11466938.html

图灵奖起源

来源 : 图灵人工智能在计算机科学的世界里,也有很多带来了全球变革的超级英雄。他们都曾经辉煌一时,但逐渐被公众遗忘。于是我们想做一件事情,用直观的动漫方式,带大家认识计算机宇宙中的那些超级英雄。故事&#xff0…

www.sirim-global.com

www.sirim-global.com 转载于:https://www.cnblogs.com/daixh/p/11466947.html

吵翻了!AI 顶会设置媒体静默期,作者不信邪提前宣传被拒稿,加强盲审是促进公平还是阻止了学术交流?...

来源:AEIC学术交流中心3月2日,计算机视觉三大顶会之一的CVPR2022论文接收结果公布,在经历了漫长的社交媒体静默期后,社交媒体被论文作者刷屏了,部分作者还展示了自己的论文成果。1CVPR2022论文接收结果作为人工智能领域…

巨头们的先进封装技术解读

来源 : 图灵人工智能在上《先进封装最强科普》中,我们对市场上的先进封装需求进行了一些讨论。但其实具体到各个厂商,无论是英特尔(EMIB、Foveros、Foveros Omni、Foveros Direct)、台积电(InFO-OS、InFO-L…

猜测未来微服务架构

微服务架构 微服务的概念在2014年3月由Martin Fowler首次提出。 微服务架构解决的核心问题及其相应的开源组件如下所示: RPC框架 (Service-to-service calls) Spring Boot/Spring MVCDubbogRPCthrift服务注册和发现 (Service registration and discovery) 注册中心 …

联邦学习怎样应用在推荐系统中?

来源:知乎丨羊老头说起联邦学习,大家再熟悉不过了,由于其能在数据不移动的前提下协同训练一个全局共享的模型,迅速成为了人工智能安全领域的一个研究热点。推荐系统作为人工智能领域最振奋人心的应用之一,与联邦学习相…

红帽、Docker、SUSE 在俄罗斯停服

出品:CSDN(ID:CSDNnews)整理:苏宓继 Oracle、Google、苹果等科技公司和 React 开源项目之后,如今 Linux 发行版也牵扯进俄乌之间冲突的漩涡中。其中一个是全球最大的独立开源软件公司 SUSE,一个…

spring boot 配置动态刷新

本文测试使用的spring cloud版本为: Dalston.SR1 很多朋友只知道spring cloud config可以刷新远程git的配置到内存中, 却不知道spring cloud config的客户端可以脱离服务端使用, 更不知道spring cloud config客户端结合actuator还可以刷新本地…

深度学习撞墙了

来源:机器之心早在 2016 年,Hinton 就说过,我们不用再培养放射科医生了。如今几年过去,AI 并没有取代任何一位放射科医生。问题出在哪儿?近年来,AI 在大数据、大模型的深度学习之路上一路狂奔,但…

在Spring-boot中,为@Value注解添加从数据库读取properties支持

一般我们会把常用的属性放在工程的classpath文件夹中,以property,yaml或json的格式进行文件存储,便于Spring-boot在初始化时获取。 Value则是Spring一个非常有用的注解,可以在初始化时很方便的对Bean的入参变量进行赋值&#xff…

Transformer 会接管人工智能?

来源:ScienceAI编辑:绿萝想象一下,你去当地的五金店,在货架上看到一种新的锤子。你听说过这把锤子:它比其他锤子敲得更快、更准确,在过去的几年里,它已经淘汰了许多其他锤子,至少在大…

SpringBoot防止重复请求,重复表单提交超级简单的注解实现

1. 注解接口 /** * description 防止表单重复提交注解 */Retention(RetentionPolicy.RUNTIME)Target(ElementType.METHOD)Documentedpublic interface DuplicateSubmitToken { //保存重复提交标记 默认为需要保存 boolean save() default true;}2. 定义异常类 /** * 重复提交…