反射和添加引用的区别 反射和右键添加引用都可以实现对程序集里的方法的调用,那有什么区别吗? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 代码里调用哪个方法,应该是已经知道了吧,为什么要运行时调用DLL?请高手解释 如果是引用的方式,前期就知道.如果是反射的方式,后期才知道.为什么运行是要调用DLL? 别人开发的第三方的程式,你没有源代码,而别人也是在DLL中提供了接口供你调用,你当然只能调用DLL,这样别人可以将内部代码隐藏,保护,将内部实现隐藏(代码).你自己写的DLL也一样,即使有源代码,你也不可能把所有的功能都弄到一个项目下,既不利于扩展,也不利于维护. 我曾经做过一个项目,在项目开发完毕以后,客户要求添加一个天气预报的功能,因为采用的是反射的方式,我把天气预报的调用重新写了一个项目,生成的dll添加进原来的运行目录中,再在配置文件中把新添加的dll信息填进去。新添加的功能就可以使用了,不必更改原来的代码。这是一个好处吧。 如果要把程序做成插件式、插拔式,就可以使用反射实现例如说,现在你的程序通过反射调用一个DLL的函数,那天这个DLL不用了,或者来了一个新的DLL,只要接口不变(就算接口变了,也可以通过配置文件获得),都可以直接使用新的DLL,那不需要修改你原来的程序 想想開閉原則,有些情況用那一個DLL是要在運行時才知道的.例如:你開發了一個系統,是支持SQL與mySQL的,而連接這兩個不同數據庫是用不同的DLL的,你可以通過配置來改變他的連接. 反射是一个运行库类型发现的过程。通过反射可以得到一个给定程序集所包含的所有类型的列表,这个列表包括给定类型中定义的方法、字段、属性和事件。也可以动态的发现一组给定类支持的借口、方法的参数和其他相关信息如基类、命名空间、数据清单等。右键引用DLL是在程序运行前已经指定了 CSHAPE的泛型问题 asp.net iframe想要后台调用父母窗体的后台方法 c# Management 受保护 如何在用C#编写asp.net应用程序中添加System.data.odbc 微软的Visual Developer 2005,有不用安装板吗?想放到移动硬盘上用。 一个存贮过程问题,在线等 代码实现为C#编写的小程序创建桌面快捷方式 很老的问题了调用dll 如何在c#的ArrayList中一次删除多个对象。 心里很郁闷,进来聊聊可以吗? C#透明窗体 很奇怪的sql语句吖! select top 0 from 表名
如果是反射的方式,后期才知道.为什么运行是要调用DLL? 别人开发的第三方的程式,你没有源代码,而别人也是在DLL中提供了接口供你调用,你当然只能调用DLL,这样别人可以将内部代码隐藏,保护,将内部实现隐藏(代码).
你自己写的DLL也一样,即使有源代码,你也不可能把所有的功能都弄到一个项目下,既不利于扩展,也不利于维护.
例如说,现在你的程序通过反射调用一个DLL的函数,那天这个DLL不用了,或者来了一个新的DLL,只要接口不变(就算接口变了,也可以通过配置文件获得),都可以直接使用新的DLL,那不需要修改你原来的程序
例如:你開發了一個系統,是支持SQL與mySQL的,而連接這兩個不同數據庫是用不同的DLL的,你可以通過配置來改變他的連接.
这个列表包括给定类型中定义的方法、字段、属性和事件。也可以动态的发现一组给定类支持的借口、方法的参数和其他相关信息如基类、命名空间、数据清单等。
右键引用DLL是在程序运行前已经指定了