【技术实现步骤摘要】
用于代码分析的代码元素的选择性加载方法和系统
技术介绍
曾经,软件应用程序是整块的可执行代码和数据,尽管一些诸如变量设置之类的应用程序数据可以被保存在单独的文件中。相反,当代的软件应用程序和其它可执行代码(诸如操作系统组件)绑定到并利用自包含软件实体,每个自包含软件实体提供能够被一个或多个应用程序或其它可执行代码使用的一组功能。这种自包含软件实体的使用使得能够由不同的应用程序共享相同的软件实体,允许应用程序的可执行文件被变得更小,使得大的开发项目能够分割成较小的项目,并且允许更新软件实体而无需更新使用它们的应用程序。汇编件(assembly)就是一个这样的自包含软件实体。具体来说,汇编件是一种在.NET架构中用于部署、版本制定以及安全性的代码库。通过使用经适当配置的编译器(例如,.NET编译器)编译源代码(例如,C#、C++或VisualBasic源代码)来生成汇编件。汇编件包括元数据和中间语言指令。元数据描述用源代码定义的代码元素,诸如类型、成员(例如,方法、字段、特性、事件)以及属性。中间语言指令是当汇编件被执行是执行操作的操作码。将汇编件翻译成机器专用的可执行代码 ...
【技术保护点】
1.一种用于加载包含在多个软件实体中的代码元素以利于代码分析工具对目标软件实体的分析的方法,所述多个软件实体包括目标软件实体和一个或多个参考软件实体,所述方法包括:将代码元素的第一子集分配给第一组;将代码元素的第二子集分配给第二组;仅加载分配给第一组的代码元素,其中加载代码元素包括访问包含该代码元素的软件实体。
【技术特征摘要】
2010.01.14 US 12/687,1541.一种用于加载包含在多个软件实体中的代码元素以利于代码分析工具对目标软件实体的分析的方法,所述多个软件实体包括目标软件实体和一个或多个参考软件实体,所述方法包括:将代码元素的第一子集分配给第一组,包括将包含在目标软件实体中的所有代码元素分配给第一环;以及将包含在一个或多个参考软件实体中的、包含在目标软件实体中的代码元素所直接依赖的任何代码元素分配给第二环,其中所述环表示所述软件实体中包含的代码元素的逻辑分组;将代码元素的第二子集分配给第二组;仅加载分配给第一组的代码元素以供由所述代码分析工具对目标软件实体进行整体分析,其中加载代码元素包括访问包含该代码元素的软件实体;以及使用代码元素的第一子集的经加载代码元素而不使用代码元素的第二子集来执行对目标软件实体的整体分析。2.如权利要求1所述的方法,其特征在于,所述代码元素包括类型、方法、特性、字段、事件和属性中的一个或多个。3.如权利要求1所述的方法,其特征在于,将包含在一个或多个参考软件实体中的、包含在目标软件实体中的代码元素所直接依赖的任何代码元素分配给第二环包括:读取目标软件实体的元数据来识别包含在一个或多个参考软件实体中的、目标软件实体中包含的代码元素所直接依赖的代码元素。4.如权利要求1所述的方法,其特征在于,其中所述第二组包括第三环,其中将代码元素的第二子集分配给第二组包括将包含在一个或多个参考软件实体中的所有没有被分配给第二环的、并且分配给第二环的代码元素直接依赖的任何代码元素分配给第三环,以及其中所述方法还包括为分配给第三环的每个代码元素创建命名的占位符。5.如权利要求4所述的方法,其特征在于,将包含在一个或多个参考软件实体中的、分配给第二环的代码元素所直接依赖的任何代码元素分配给第三环包括:读取一个或多个参考软件实体的元数据来识别包含在一个或多个参考软件实体中的、分配给第二环的代码元素所直接依赖的代码元素。6.如权利要求4所述的方法,其特征在于,还包括:不加载所述多个代码元素中的没有被分配给第一组和第二组的任何代码元素;以及不为所述多个代码元素中的没有被分配给第一组和第二组的任何代码元素创建命名的占位符。7.一种用于代码分析的代码元素的选择性加载的系统(100),包括:处...
【专利技术属性】
技术研发人员:D·巴尔托洛梅奥,T·L·金,
申请(专利权)人:微软公司,
类型:发明
国别省市:US
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。