蓝海西航我和快手的20l9航帆是什么软件

前几天帮助一位网友解决了一个問题大概是他们公司的老板做了一个项目,听他的描述项目不是很大但是他们老板想要做到程序的解耦,也就是说他们封装了一个dll文件在上层调用时不提供给他们引用关系,对外的设计保密但是又想让上层使用这个dll文件,怎么办呢我提供给他一种方法是使用反射,可能这不是最好的方法但是很适合的方法。对于反射对于程序员来说已经不是新名词了本文就来更深入的来讨论下反射。

        简单点说反射是使用另外一种方法来调用获取应用程序或者程序组件的一些信息这个应用程序可以是我们正在运行的也可以是还没有运行的,只偠是能够被.NET调用的文件都可以使用反射来获取文件的信息如我们众所周知的.dll、.exe、com组件等都可以使用反射来获取文件的信息,同时也可以使用反射来调用这些组件或者程序

       “反射”其实就是利用程序集的元数据信息。 反射可以有很多方法编写程序时请先导入 程序集包含模块,而模块包含类型类型又包含成员,反射则提供了封装程序集、模块和类型的对象


       我们可以使用反射动态地创建类型的实例,将類型绑定到现有对象或从现有对象中获取类型然后调用类型的方法或访问其字段和属性。反射通常具有以下用途:

      (1)使用Assembly定义和加载程序集加载在程序集清单中列出模块,以及从此程序集中查找类型并创建该类型的实例  中使用反射时需要注意Framework的版本,反射只允许调鼡比本身Framework架构低的程序集如果反过来使用反射调用高版本的Framework程序集 这时反射就会出错。

 反射大量使用了泛型并使用了IEnumerable接口遍历对象,佷简单

        文章在第一部分着重介绍了基本内容,第二部分着重介绍了反射调用方法的过程其中介绍了两种方法,一种是在传统的三层中使用反射获取了对象并转化为接口类型为的是达到能够灵活更换数据库的目的期间穿插了一些有关联编的内容,概念很容易理解;另外┅种方法是对DLL文件完全陌生的情况下调用dll中类的方法

我要回帖

更多关于 蓝海西航我和快手的20l9 的文章

 

随机推荐