DOTNET平台组件配置工具的设计与实现

发布时间: 2024-10-24 04:33:58  来源:天博app 

  反转控制(IOC)和面向切面编程(AOP)技术作为当前比较流行的技术,其优势已受到广泛关注,但是这两项新技术在实际项目上的应用研究却很落后,而且在em

  下应用IOC和AOP技术的难度和成本大幅度提升。Castle提供了.NET

  下开发IOC和AOP技术的框架,某些特定的程度上解决了研发人员的难题,但是如何高效地

  本文主要研究Castle框架中的IOC和AOP机制,目标是设计出一个可视化工具实现IOC和AOP机制中配置文件的可视化配置。该工具经过修改和完善也适用于其他框架中的IOC和AOP配置文件的生成。

  反转控制IOC(Inversion of Control)[1],又称依赖注入DI(Dependency Injection),是面向对象领域新兴的编程思想。简单地说,IOC就是指由容器来控制程序之间的关系,而非传统实现中的由程序代码直接操控。这也是所谓“反转控制”的概念所在:控制权由应用代码转到外部容器,控制权的转移,也是所谓的反转。

  AOP[2](Aspect Oriented Programming)是OOP的延续,意思是面向切面编程。能够最终靠预编译方式和运行期动态代理实现在不修改源代码的情况下给程序动态统一添加功能的一种技术。它能解决OOP和过程化方法不能够很好解决的横切(crosscut)问题,如:事务、安全、日志等横切关注。当未来系统慢慢的变复杂,横切关注点就成为一个大问题的时候,AOP就可以很轻松地解决横切关注点的问题。

  可视化IOC和AOP配置工具是一个在.NET平台下开发的WinForm程序,这个工具的最大的作用就是在IOC组件或者AOP组件都开发好的条件下,利用这个工具生成IOC或者AOP的配置文件,方法是读取现存的IOC组件或者AOP组件。在工具中进行一定的配置,最后直接生成研发人员所需的配置文件。

  该工具的基本功能是通过读入现存的IOC组件或AOP组件,提取并暂存组件中与配置有关的重要信息,以可视化的方式显示在工具界面中,然后由研发人员操作该工具完成组件对应的配置文件的生成。这样的一个过程可以划分为5个阶段(如图1):读取类文件分析类文件显示配置信息研发人员对参数进行配置生成配置文件。其中前三层是该工具主要实现的功能。因此,该可视化工具的代码部分分为3个层次来编写。分别是:读类文件、分析提取信息、显示信息。

  第一层主要是完成类文件的读取,在台下使用到了System.IO命名空间中文件操作相关的File类和StreamReader类,最终将整个读取的文件内容以string类型返回,以供第二层分析文件使用。

  第二层的功能是在第一层的读取文件内容的基础上分析并提取关键字,即取出配置文件需要的重要信息,例如IOC反转控制模式主要有设值注入和构造方法注入,设值注入就是对类中的属性进行注入,而构造方法注入是对构造函数中的参数值进行注入。因此类中的属性和构造函数的参数就属于IOC配置文件的重要信息,第二层主要完成对类似的重要信息的识别和分类。在第二层中,完成的识别功能主要有:

  在IOC配置文件中,命名空间、类名、接口名常出现在component标签的service和type属性值中,而在AOP的配置文件中命名空间出现在Imports关键字之后。所以对命名空间、类名、接口名的提取是生成配置文件的必要条件。

  IOC反转控制模式中的设值注入就是对类中的属性进行注入,如采用该注入模式设计系统,在IOC配置文件中,需要把类中的属性作为配置文件的标签。

  IOC反转控制模式中的构造注入是对构造函数中的参数值进行注入,如果采用该模式设计系统,在IOC的配置文件中,需要把构造方法的参数名作为配置文件中的标签。

  以上介绍的是第二层所识别的关键字的类别。在程序中关键字的获取主要是通过编写获取方法来实现。获取命名空间利用GetNamespace方法;获取类名使用GetClass方法;获取接口名使用GetInterface方法;获取属性名使用GetProperty方法。实现的思路是在遵循一定规约的前提下通过属性在类中的位置特征将其提取出来并且依次保存到一个ArrayList对象中。