CN117648074B - 一种用于c#软件开发的程序处理方法、***及介质 - Google Patents
一种用于c#软件开发的程序处理方法、***及介质 Download PDFInfo
- Publication number
- CN117648074B CN117648074B CN202410118535.2A CN202410118535A CN117648074B CN 117648074 B CN117648074 B CN 117648074B CN 202410118535 A CN202410118535 A CN 202410118535A CN 117648074 B CN117648074 B CN 117648074B
- Authority
- CN
- China
- Prior art keywords
- function
- module
- father
- information
- function module
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
- 238000000034 method Methods 0.000 claims abstract description 33
- 230000006870 function Effects 0.000 claims description 297
- 230000004044 response Effects 0.000 claims description 79
- 238000012937 correction Methods 0.000 claims description 8
- 238000005516 engineering process Methods 0.000 claims description 7
- 238000011161 development Methods 0.000 abstract description 28
- 238000004458 analytical method Methods 0.000 abstract description 3
- 238000013461 design Methods 0.000 description 9
- 230000000694 effects Effects 0.000 description 6
- 238000010276 construction Methods 0.000 description 5
- 238000012545 processing Methods 0.000 description 4
- 230000008859 change Effects 0.000 description 2
- 230000008878 coupling Effects 0.000 description 2
- 238000010168 coupling process Methods 0.000 description 2
- 238000005859 coupling reaction Methods 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 230000008569 process Effects 0.000 description 2
- 238000012216 screening Methods 0.000 description 2
- 230000001419 dependent effect Effects 0.000 description 1
- 238000010230 functional analysis Methods 0.000 description 1
- 230000003993 interaction Effects 0.000 description 1
- 238000012423 maintenance Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/24—Object-oriented
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/30—Creation or generation of source code
- G06F8/31—Programming languages or programming paradigms
- G06F8/315—Object-oriented languages
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/41—Compilation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/40—Transformation of program code
- G06F8/53—Decompilation; Disassembly
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/70—Software maintenance or management
- G06F8/73—Program documentation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computing Systems (AREA)
- Library & Information Science (AREA)
- Stored Programmes (AREA)
Abstract
本申请实施例提供了一种用于C#软件开发的程序处理方法、***及介质,该方法包括:确定待处理软件程序,所述待处理软件程序包括至少一个父功能模块;获取每个所述父功能模块的功能标记,得到相应的功能标记信息;依次确定待处理软件程序中的每个父功能模块对应的子功能模块,依次对每个子功能模块进行编译,生成元数据;接收功能调用请求,得到请求信息,根据请求信息调用对应的父功能模块,得到目标父功能模块;通过目标父功能模块响应请求信息,执行目标父功能模块;本申请通过功能标记对父功能模块进行功能分析,并实时根据功能调用请求进行针对应的选择执行目标父功能模块,提高了程序设计的效率,降低开发成本。
Description
技术领域
本申请涉及C#软件程序处理技术领域,具体而言,涉及一种用于C#软件开发的程序处理方法、***及介质。
背景技术
C#是一种强大而灵活的编程语言,被广泛应用于各种领域的软件开发和应用程序构建中。它提供了丰富的功能和工具,为开发者提供了高效、安全、可靠的编程环境。
目前很多医疗设备上都使用了C#作为上位机的开发语言开发上位机实现人机交互,即用户只需要点击屏幕即可与机器进行交互,但是目前很多上位机模块之间紧密依赖,导致如果其中一个模块发生变化,就会对其他模块产生影响,而导致可维护性和可拓展性都很差,存在设计开发周期长,模块和模块之间耦合严重的严重问题。
在当代信息快速发展的时代,需求是在不断变化的,可以想象到,一但需求发生改变,以往开发的上位机就会因为代码高耦合,不能快速的完成需求的开发,一方面影响市场响应速率,另一方面又加剧了开发成本。
目前,常规做法是自顶向下将复杂的任务(父模块)分解为简单的子任务(子模块)。每个小模块完成一个确定的功能,并在这些模块之间既要建立必要的联系,也要避免过多的相互调用。通过模块的互相协作完成整个功能的程序设计方法。这种开发方式对设计人员的要求比较高,前期的投入成本高,模块和模块之间很容易有依赖的关系,维护难度高;针对上述问题,目前亟待有效的技术解决方案。
发明内容
本申请实施例的目的在于提供一种用于C#软件开发的程序处理方法、***及介质,通过功能标记对父功能模块进行功能分析,并实时根据功能调用请求进行针对应的选择执行目标父功能模块,提高了程序设计的效率,降低开发成本。
本申请实施例还提供了一种用于C#软件开发的程序处理方法,包括:
确定待处理软件程序,所述待处理软件程序包括至少一个父功能模块,每个所述父功能模块包含至少一个子功能模块;
获取每个所述父功能模块的功能标记,得到相应的功能标记信息;
根据功能标记信息依次确定待处理软件程序中的每个父功能模块对应的子功能模块,依次对每个子功能模块进行编译,生成元数据;
接收功能调用请求,得到请求信息,根据请求信息调用对应的父功能模块,得到目标父功能模块;
通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块。
可选地,在本申请实施例所述的用于C#软件开发的程序处理方法中,获取每个所述父功能模块的功能标记,得到相应的功能标记信息之后,还包括:
在待处理软件程序设置功能标记,生成父模块信息;
基于父模块信息生成动态链接库文件;
利用相应功能标记对动态链接库文件进行编译,通过编译器依次确定待处理软件程序中的每个父功能模块对应的子功能模块;
利用编译器依次对每个子功能模块进行编译,生成元数据。
可选地,在本申请实施例所述的用于C#软件开发的程序处理方法中,在待处理软件程序设置功能标记,生成父模块信息,具体包括:
在当前的主程序上,调用Register Type函数;
使用反射功能,寻找相应功能标记的特定信息;
根据功能标记的特定信息定位被标记的父功能模块;
将被标记的父功能模块进行注册,生成父模块信息。
可选地,在本申请实施例所述的用于C#软件开发的程序处理方法中,基于父模块信息生成动态链接库文件,具体包括:
在待处理软件程序设置功能标记,生成父模块信息;
根据父模块信息生成对应的动态链接库文件;
获取若干个子功能模块,分析子功能模块之间的关系;
根据子功能模块之间的关系将动态链接库文件进行解耦处理,放在容器中。
可选地,在本申请实施例所述的用于C#软件开发的程序处理方法中,通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块,具体包括:
获取功能调用请求,得到请求信息,通过目标父功能模块响应请求信息,计算响应时间;
将响应时间与设定的时间阈值进行比较,计算响应速率;
判断所述响应速率是否满足要求;
若满足要求,则根据请求信息生成响应结果,根据响应结果执行目标父功能模块;
若不满足要求,则生成修正信息,根据修正信息调整响应方式与响应参数。
可选地,在本申请实施例所述的用于C#软件开发的程序处理方法中,通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块,具体包括:
由父功能模块的名称找到相应元数据的PE段,向元数据咨询相应类的信息;
通过反编译MSLI转换为快速本机指令;
利用反射技术,查找当前工程目录下的所有功能模块;
返回一个数组,供用户选择,在用户作出选择后,读取所选择的功能模块的名称。
第二方面,本申请实施例提供了一种用于C#软件开发的程序处理***,该***包括:存储器及处理器,所述存储器中包括用于C#软件开发的程序处理方法的程序,所述用于C#软件开发的程序处理方法的程序被所述处理器执行时实现以下步骤:
确定待处理软件程序,所述待处理软件程序包括至少一个父功能模块,每个所述父功能模块包含至少一个子功能模块;
获取每个所述父功能模块的功能标记,得到相应的功能标记信息;
根据功能标记信息依次确定待处理软件程序中的每个父功能模块对应的子功能模块,依次对每个子功能模块进行编译,生成元数据;
接收功能调用请求,得到请求信息,根据请求信息调用对应的父功能模块,得到目标父功能模块;
通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块。
可选地,在本申请实施例所述的用于C#软件开发的程序处理***中,获取每个所述父功能模块的功能标记,得到相应的功能标记信息之后,还包括:
在待处理软件程序设置功能标记,生成父模块信息;
基于父模块信息生成动态链接库文件;
利用相应功能标记对动态链接库文件进行编译,通过编译器依次确定待处理软件程序中的每个父功能模块对应的子功能模块;
利用编译器依次对每个子功能模块进行编译,生成元数据。
可选地,在本申请实施例所述的用于C#软件开发的程序处理***中,在待处理软件程序设置功能标记,生成父模块信息,具体包括:
在当前的主程序上,调用Register Type函数;
使用反射功能,寻找相应功能标记的特定信息;
根据功能标记的特定信息定位被标记的父功能模块;
将被标记的父功能模块进行注册,生成父模块信息。
第三方面,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质中包括用于C#软件开发的程序处理方法程序,所述用于C#软件开发的程序处理方法程序被处理器执行时,实现如上述任一项所述的用于C#软件开发的程序处理方法的步骤。
由上可知,本申请实施例提供的一种用于C#软件开发的程序处理方法、***及介质,通过确定待处理软件程序,所述待处理软件程序包括至少一个父功能模块,每个所述父功能模块包含至少一个子功能模块;获取每个所述父功能模块的功能标记,得到相应的功能标记信息;根据功能标记信息依次确定待处理软件程序中的每个父功能模块对应的子功能模块,依次对每个子功能模块进行编译,生成元数据;接收功能调用请求,得到请求信息,根据请求信息调用对应的父功能模块,得到目标父功能模块;通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块;本申请通过功能标记对父功能模块进行功能分析,并实时根据功能调用请求进行针对应的选择执行目标父功能模块,提高了程序设计的效率,降低开发成本。
附图说明
为了更清楚地说明本申请实施例的技术方案,下面将对本申请实施例中所需要使用的附图作简单地介绍,应当理解,以下附图仅示出了本申请的某些实施例,因此不应被看作是对范围的限定,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他相关的附图。
图1为本申请实施例提供的用于C#软件开发的程序处理方法的流程图;
图2为本申请实施例提供的用于C#软件开发的程序处理方法的元数据生成方法流程图;
图3为本申请实施例提供的用于C#软件开发的程序处理方法的父模块信息生成方法流程图。
具体实施方式
下面将结合本申请实施例中附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。通常在此处附图中描述和示出的本申请实施例的组件可以以各种不同的配置来布置和设计。因此,以下对在附图中提供的本申请的实施例的详细描述并非旨在限制要求保护的本申请的范围,而是仅仅表示本申请的选定实施例。基于本申请的实施例,本领域技术人员在没有做出创造性劳动的前提下所获得的所有其他实施例,都属于本申请保护的范围。
应注意到,相似的标号和字母在下面的附图中表示类似项,因此,一旦某一项在一个附图中被定义,则在随后的附图中不需要对其进行进一步定义和解释。同时,在本申请的描述中,术语“第一”、“第二”等仅用于区分描述,而不能理解为指示或暗示相对重要性。
请参照图1,图1是本申请一些实施例中的一种用于C#软件开发的程序处理方法的流程图。该用于C#软件开发的程序处理方法用于终端设备中,该用于C#软件开发的程序处理方法,包括以下步骤:
S101,确定待处理软件程序,待处理软件程序包括至少一个父功能模块,每个父功能模块包含至少一个子功能模块;
S102,获取每个父功能模块的功能标记,得到相应的功能标记信息;
S103,根据功能标记信息依次确定待处理软件程序中的每个父功能模块对应的子功能模块,依次对每个子功能模块进行编译,生成元数据;
S104,接收功能调用请求,得到请求信息,根据请求信息调用对应的父功能模块,得到目标父功能模块;
S105,通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块。
需要说明的是,用户依照开发需求设计业务功能,不需要对实现的功能进行严格的划分,只需要对开发的功能进行标记,然后将开发的功能当作一个模块进行注册,随后,如果要调用编写的模块的初始化构造函数,将需要接受的初始化变量传入,用户调用时只需查找所有的模块名称,并且以数组的形式返回;然后选择性的加载需要的模块;最后将需要的模块初始化即可使用,开发人员可以不用自己严格的划分模块,不改变编程方式,但是实现功能和功能之间的模块化设计,缩短开发周期,节约开发成本,增强代码的鲁棒性。
请参照图2,图2是本申请一些实施例中的一种用于C#软件开发的程序处理方法的元数据生成方法流程图。根据本发明实施例,获取每个父功能模块的功能标记,得到相应的功能标记信息之后,还包括:
S201,在待处理软件程序设置功能标记,生成父模块信息;
S202,基于父模块信息生成动态链接库文件;
S203,利用相应功能标记对动态链接库文件进行编译,通过编译器依次确定待处理软件程序中的每个父功能模块对应的子功能模块;
S204,利用编译器依次对每个子功能模块进行编译,生成元数据。
需要说明的是,根据功能标记进行生成父模块信息,根据父模块信息实时生成动态链接库文件,从而精准的对动态链接库文件进行实时编译,提高子功能模块的编译效果。
请参照图3,图3是本申请一些实施例中的一种用于C#软件开发的程序处理方法的父模块信息生成方法流程图。根据本发明实施例,在待处理软件程序设置功能标记,生成父模块信息,具体包括:
S301,在当前的主程序上,调用Register Type函数;
S302,使用反射功能,寻找相应功能标记的特定信息;
S303,根据功能标记的特定信息定位被标记的父功能模块;
S304,将被标记的父功能模块进行注册,生成父模块信息。
需要说明的是,通过功能标记确定目标父功能模块,响应功能调用请求,调用并执行目标父功能模块,本申请不需要复杂的模块化设计,只由编译器便能够实现软件程序功能的调用,提高了程序设计的效率,降低开发成本。
根据本发明实施例,基于父模块信息生成动态链接库文件,具体包括:
在待处理软件程序设置功能标记,生成父模块信息;
根据父模块信息生成对应的动态链接库文件;
获取若干个子功能模块,分析子功能模块之间的关系;
根据子功能模块之间的关系将动态链接库文件进行解耦处理,放在容器中。
需要说明的是,通过标记模块、注册模块、发现模块、加载模块好初始化模块实现,标记模块将所开发的功能标记为模块;注册模块通过反射和特性,查找并将开发完成的功能以模块的形式注入进容器中。
根据本发明实施例,通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块,具体包括:
获取功能调用请求,得到请求信息,通过目标父功能模块响应请求信息,计算响应时间;
将响应时间与设定的时间阈值进行比较,计算响应速率;
判断响应速率是否满足要求;
若满足要求,则根据请求信息生成响应结果,根据响应结果执行目标父功能模块;
若不满足要求,则生成修正信息,根据修正信息调整响应方式与响应参数。
需要说明的是,通过分析目标父功能模块的响应时间进行计算响应速率,从而根据响应速率进行判断请求响应的效果,根据响应效果进行判断是否执行目标父功能模块,提高目标父功能模块的执行力。
根据本发明实施例,通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块,具体包括:
由父功能模块的名称找到相应元数据的PE段,向元数据咨询相应类的信息;
通过反编译MSLI转换为快速本机指令;
利用反射技术,查找当前工程目录下的所有功能模块;
返回一个数组,供用户选择,在用户作出选择后,读取所选择的功能模块的名称。
需要说明的是,发现模块利用反射的技术,查找当前工程目录下的所有模块,并且返回一个数组,用以给开发人员选择;加载模块模块读取所选择的模块的名称,加载的模块的DLL(DLL(Dynamic Link Library)文件为动态链接库文件),通过DLL查找模块的方法和属性,将其都提取出来;初始化模块,将开发人员的运行时才能确定的参数传入构造函数,初始化所取得的模块的方法和属性,以便于调用;开发人员通过该模块化设计方法,即可将自己开发的功能注入进框架,在后续的使用中随时可取出,也可删除和修改,缩短开发周期,节约开发成本,增强代码的鲁棒性。
上述方案解决传统模块化开发,开发周期长的问题;解决传统模块化开发投入成本高的问题;提供一种快速实现模块化开发的框架;不需要在前期将项目进行细分,即可完成模块化设计;能够提高代码的稳定性和可拓展性。
根据本发明实施例,接收功能调用请求,得到请求信息,根据请求信息调用对应的父功能模块,得到目标父功能模块,还包括:
获取功能调用请求,得到请求信息,根据请求信息调用对应的父功能模块;
获取父功能模块的功能信息,将父功能模块的功能信息与请求信息进行计算匹配信息,得到功能匹配度;
判断功能匹配度是否大于或等于设定的匹配度阈值;
若大于或等于,则得到目标父功能模块;
若小于,则对父功能模块进行筛选调整。
需要说明的是,为了保证目标父功能模块的调用精度,通过分析请求信息与父功能模块的功能之间匹配度,从而进行精准的调用目标父功能模块。
第二方面,本申请实施例提供了一种用于C#软件开发的程序处理***,该***包括:存储器及处理器,存储器中包括用于C#软件开发的程序处理方法的程序,用于C#软件开发的程序处理方法的程序被处理器执行时实现以下步骤:
确定待处理软件程序,待处理软件程序包括至少一个父功能模块,每个父功能模块包含至少一个子功能模块;
获取每个父功能模块的功能标记,得到相应的功能标记信息;
根据功能标记信息依次确定待处理软件程序中的每个父功能模块对应的子功能模块,依次对每个子功能模块进行编译,生成元数据;
接收功能调用请求,得到请求信息,根据请求信息调用对应的父功能模块,得到目标父功能模块;
通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块。
需要说明的是,用户依照开发需求设计业务功能,不需要对实现的功能进行严格的划分,只需要对开发的功能进行标记,然后将开发的功能当作一个模块进行注册,随后,如果要调用编写的模块的初始化构造函数,将需要接受的初始化变量传入,用户调用时只需查找所有的模块名称,并且以数组的形式返回;然后选择性的加载需要的模块;最后将需要的模块初始化即可使用,开发人员可以不用自己严格的划分模块,不改变编程方式,但是实现功能和功能之间的模块化设计,缩短开发周期,节约开发成本,增强代码的鲁棒性。
根据本发明实施例,获取每个父功能模块的功能标记,得到相应的功能标记信息之后,还包括:
在待处理软件程序设置功能标记,生成父模块信息;
基于父模块信息生成动态链接库文件;
利用相应功能标记对动态链接库文件进行编译,通过编译器依次确定待处理软件程序中的每个父功能模块对应的子功能模块;
利用编译器依次对每个子功能模块进行编译,生成元数据。
需要说明的是,根据功能标记进行生成父模块信息,根据父模块信息实时生成动态链接库文件,从而精准的对动态链接库文件进行实时编译,提高子功能模块的编译效果。
根据本发明实施例,在待处理软件程序设置功能标记,生成父模块信息,具体包括:
在当前的主程序上,调用Register Type函数;
使用反射功能,寻找相应功能标记的特定信息;
根据功能标记的特定信息定位被标记的父功能模块;
将被标记的父功能模块进行注册,生成父模块信息。
需要说明的是,通过功能标记确定目标父功能模块,响应功能调用请求,调用并执行目标父功能模块,本申请不需要复杂的模块化设计,只由编译器便能够实现软件程序功能的调用,提高了程序设计的效率,降低开发成本。
根据本发明实施例,基于父模块信息生成动态链接库文件,具体包括:
在待处理软件程序设置功能标记,生成父模块信息;
根据父模块信息生成对应的动态链接库文件;
获取若干个子功能模块,分析子功能模块之间的关系;
根据子功能模块之间的关系将动态链接库文件进行解耦处理,放在容器中。
需要说明的是,通过标记模块、注册模块、发现模块、加载模块好初始化模块实现,标记模块将所开发的功能标记为模块;注册模块通过反射和特性,查找并将开发完成的功能以模块的形式注入进容器中。
根据本发明实施例,通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块,具体包括:
获取功能调用请求,得到请求信息,通过目标父功能模块响应请求信息,计算响应时间;
将响应时间与设定的时间阈值进行比较,计算响应速率;
判断响应速率是否满足要求;
若满足要求,则根据请求信息生成响应结果,根据响应结果执行目标父功能模块;
若不满足要求,则生成修正信息,根据修正信息调整响应方式与响应参数。
需要说明的是,通过分析目标父功能模块的响应时间进行计算响应速率,从而根据响应速率进行判断请求响应的效果,根据响应效果进行判断是否执行目标父功能模块,提高目标父功能模块的执行力。
根据本发明实施例,通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块,具体包括:
由父功能模块的名称找到相应元数据的PE段,向元数据咨询相应类的信息;
通过反编译MSLI转换为快速本机指令;
利用反射技术,查找当前工程目录下的所有功能模块;
返回一个数组,供用户选择,在用户作出选择后,读取所选择的功能模块的名称。
需要说明的是,发现模块利用反射的技术,查找当前工程目录下的所有模块,并且返回一个数组,用以给开发人员选择;加载模块模块读取所选择的模块的名称,加载的模块的DLL(DLL(Dynamic Link Library)文件为动态链接库文件),通过DLL查找模块的方法和属性,将其都提取出来;初始化模块,将开发人员的运行时才能确定的参数传入构造函数,初始化所取得的模块的方法和属性,以便于调用;开发人员通过该模块化设计方法,即可将自己开发的功能注入进框架,在后续的使用中随时可取出,也可删除和修改,缩短开发周期,节约开发成本,增强代码的鲁棒性。
上述方案解决传统模块化开发,开发周期长的问题;解决传统模块化开发投入成本高的问题;提供一种快速实现模块化开发的框架;不需要在前期将项目进行细分,即可完成模块化设计;能够提高代码的稳定性和可拓展性。
根据本发明实施例,接收功能调用请求,得到请求信息,根据请求信息调用对应的父功能模块,得到目标父功能模块,还包括:
获取功能调用请求,得到请求信息,根据请求信息调用对应的父功能模块;
获取父功能模块的功能信息,将父功能模块的功能信息与请求信息进行计算匹配信息,得到功能匹配度;
判断功能匹配度是否大于或等于设定的匹配度阈值;
若大于或等于,则得到目标父功能模块;
若小于,则对父功能模块进行筛选调整。
需要说明的是,为了保证目标父功能模块的调用精度,通过分析请求信息与父功能模块的功能之间匹配度,从而进行精准的调用目标父功能模块。
本发明第三方面提供了一种计算机可读存储介质,可读存储介质中包括用于C#软件开发的程序处理方法程序,用于C#软件开发的程序处理方法程序被处理器执行时,实现如上述任一项的用于C#软件开发的程序处理方法的步骤。
本发明公开的一种用于C#软件开发的程序处理方法、***及介质,通过确定待处理软件程序,所述待处理软件程序包括至少一个父功能模块,每个所述父功能模块包含至少一个子功能模块;获取每个所述父功能模块的功能标记,得到相应的功能标记信息;根据功能标记信息依次确定待处理软件程序中的每个父功能模块对应的子功能模块,依次对每个子功能模块进行编译,生成元数据;接收功能调用请求,得到请求信息,根据请求信息调用对应的父功能模块,得到目标父功能模块;通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块;本申请通过功能标记对父功能模块进行功能分析,并实时根据功能调用请求进行针对应的选择执行目标父功能模块,提高了程序设计的效率,降低开发成本。
在本申请所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个***,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元;既可以位于一个地方,也可以分布到多个网络单元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
另外,在本发明各实施例中的各功能单元可以全部集成在一个处理单元中,也可以是各单元分别单独作为一个单元,也可以两个或两个以上单元集成在一个单元中;上述集成的单元既可以采用硬件的形式实现,也可以采用硬件加软件功能单元的形式实现。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
或者,本发明上述集成的单元如果以软件功能模块的形式实现并作为独立的产品销售或使用时,也可以存储在一个可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
Claims (5)
1.一种用于C#软件开发的程序处理方法,其特征在于,包括:
确定待处理软件程序,所述待处理软件程序包括至少一个父功能模块,每个所述父功能模块包含至少一个子功能模块;
获取每个所述父功能模块的功能标记,得到相应的功能标记信息;
根据功能标记信息依次确定待处理软件程序中的每个父功能模块对应的子功能模块,依次对每个子功能模块进行编译,生成元数据;
接收功能调用请求,得到请求信息,根据请求信息调用对应的父功能模块,得到目标父功能模块;
通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块;
获取每个所述父功能模块的功能标记,得到相应的功能标记信息之后,还包括:
在待处理软件程序设置功能标记,生成父模块信息;
基于父模块信息生成动态链接库文件;
利用相应功能标记对动态链接库文件进行编译,通过编译器依次确定待处理软件程序中的每个父功能模块对应的子功能模块;
利用编译器依次对每个子功能模块进行编译,生成元数据;
在待处理软件程序设置功能标记,生成父模块信息,具体包括:
在当前的主程序上,调用Register Type函数;
使用反射功能,寻找相应功能标记的特定信息;
根据功能标记的特定信息定位被标记的父功能模块;
将被标记的父功能模块进行注册,生成父模块信息;
通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块,具体包括:
由父功能模块的名称找到相应元数据的PE段,向元数据咨询相应类的信息;
通过反编译MSLI转换为快速本机指令;
利用反射技术,查找当前工程目录下的所有功能模块;
返回一个数组,供用户选择,在用户作出选择后,读取所选择的功能模块的名称。
2.根据权利要求1所述的用于C#软件开发的程序处理方法,其特征在于,基于父模块信息生成动态链接库文件,具体包括:
在待处理软件程序设置功能标记,生成父模块信息;
根据父模块信息生成对应的动态链接库文件;
获取若干个子功能模块,分析子功能模块之间的关系;
根据子功能模块之间的关系将动态链接库文件进行解耦处理,放在容器中。
3.根据权利要求2所述的用于C#软件开发的程序处理方法,其特征在于,通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块,具体包括:
获取功能调用请求,得到请求信息,通过目标父功能模块响应请求信息,计算响应时间;
将响应时间与设定的时间阈值进行比较,计算响应速率;
判断所述响应速率是否满足要求;
若满足要求,则根据请求信息生成响应结果,根据响应结果执行目标父功能模块;
若不满足要求,则生成修正信息,根据修正信息调整响应方式与响应参数。
4.一种用于C#软件开发的程序处理***,其特征在于,该***包括:存储器及处理器,所述存储器中包括用于C#软件开发的程序处理方法的程序,所述用于C#软件开发的程序处理方法的程序被所述处理器执行时实现以下步骤:
确定待处理软件程序,所述待处理软件程序包括至少一个父功能模块,每个所述父功能模块包含至少一个子功能模块;
获取每个所述父功能模块的功能标记,得到相应的功能标记信息;
根据功能标记信息依次确定待处理软件程序中的每个父功能模块对应的子功能模块,依次对每个子功能模块进行编译,生成元数据;
接收功能调用请求,得到请求信息,根据请求信息调用对应的父功能模块,得到目标父功能模块;
通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块;
获取每个所述父功能模块的功能标记,得到相应的功能标记信息之后,还包括:
在待处理软件程序设置功能标记,生成父模块信息;
基于父模块信息生成动态链接库文件;
利用相应功能标记对动态链接库文件进行编译,通过编译器依次确定待处理软件程序中的每个父功能模块对应的子功能模块;
利用编译器依次对每个子功能模块进行编译,生成元数据;
在待处理软件程序设置功能标记,生成父模块信息,具体包括:
在当前的主程序上,调用Register Type函数;
使用反射功能,寻找相应功能标记的特定信息;
根据功能标记的特定信息定位被标记的父功能模块;
将被标记的父功能模块进行注册,生成父模块信息;
通过目标父功能模块响应请求信息,得到响应结果,根据响应结果执行目标父功能模块,具体包括:
由父功能模块的名称找到相应元数据的PE段,向元数据咨询相应类的信息;
通过反编译MSLI转换为快速本机指令;
利用反射技术,查找当前工程目录下的所有功能模块;
返回一个数组,供用户选择,在用户作出选择后,读取所选择的功能模块的名称。
5.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质中包括用于C#软件开发的程序处理方法程序,所述用于C#软件开发的程序处理方法程序被处理器执行时,实现如权利要求1至3中任一项所述的用于C#软件开发的程序处理方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410118535.2A CN117648074B (zh) | 2024-01-29 | 2024-01-29 | 一种用于c#软件开发的程序处理方法、***及介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202410118535.2A CN117648074B (zh) | 2024-01-29 | 2024-01-29 | 一种用于c#软件开发的程序处理方法、***及介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN117648074A CN117648074A (zh) | 2024-03-05 |
CN117648074B true CN117648074B (zh) | 2024-04-19 |
Family
ID=90043712
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202410118535.2A Active CN117648074B (zh) | 2024-01-29 | 2024-01-29 | 一种用于c#软件开发的程序处理方法、***及介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117648074B (zh) |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6704802B1 (en) * | 1996-03-27 | 2004-03-09 | Dell Usa, Lp | Method and system for communicating between independent software modules |
CN109614158A (zh) * | 2017-09-30 | 2019-04-12 | 北京国双科技有限公司 | 一种插件的调用方法、***、存储介质和处理器 |
CN109683957A (zh) * | 2018-11-28 | 2019-04-26 | 厦门中控智慧信息技术有限公司 | 功能扩展的方法及设备 |
CN110955411A (zh) * | 2019-10-25 | 2020-04-03 | 江西洪都航空工业集团有限责任公司 | 一种软件集成交互设计方法 |
CN113296790A (zh) * | 2020-02-21 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 生成应用数据包的方法、设备以及计算机可读介质 |
-
2024
- 2024-01-29 CN CN202410118535.2A patent/CN117648074B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6704802B1 (en) * | 1996-03-27 | 2004-03-09 | Dell Usa, Lp | Method and system for communicating between independent software modules |
CN109614158A (zh) * | 2017-09-30 | 2019-04-12 | 北京国双科技有限公司 | 一种插件的调用方法、***、存储介质和处理器 |
CN109683957A (zh) * | 2018-11-28 | 2019-04-26 | 厦门中控智慧信息技术有限公司 | 功能扩展的方法及设备 |
CN110955411A (zh) * | 2019-10-25 | 2020-04-03 | 江西洪都航空工业集团有限责任公司 | 一种软件集成交互设计方法 |
CN113296790A (zh) * | 2020-02-21 | 2021-08-24 | 阿里巴巴集团控股有限公司 | 生成应用数据包的方法、设备以及计算机可读介质 |
Also Published As
Publication number | Publication date |
---|---|
CN117648074A (zh) | 2024-03-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Krüger et al. | Where is my feature and what is it about? a case study on recovering feature facets | |
US10042740B2 (en) | Techniques to identify idiomatic code in a code base | |
US9652209B2 (en) | Static analysis and reconstruction of deep link handling in compiled applications | |
CN101984429A (zh) | 获取目标页面的方法、装置、搜索引擎和浏览器 | |
CN107704382A (zh) | 面向Python的函数调用路径生成方法和*** | |
CN111506314B (zh) | 项目开发的方法、装置、服务器及介质 | |
CN113018870B (zh) | 一种数据处理方法、装置及计算机可读存储介质 | |
CN107562429A (zh) | 一种基于编译规则的Android***静态划分方法 | |
CN115599359A (zh) | 一种代码生成方法、装置、设备及介质 | |
CN111752841A (zh) | 单测模拟方法、装置、设备与计算机可读存储介质 | |
CN116266117A (zh) | 模型转换方法、计算机程序产品、存储介质及电子设备 | |
CN117648074B (zh) | 一种用于c#软件开发的程序处理方法、***及介质 | |
CN115794214B (zh) | 应用模块元数据管理方法、设备、存储介质及装置 | |
CN109446454A (zh) | 一种轻量级高性能的PHPWeb***框架及工作方法 | |
CN107526966B (zh) | 一种Android平台的复合污点传播追踪方法 | |
CN115543324B (zh) | 交互界面的生成方法、装置、设备及介质 | |
CN111488286A (zh) | 一种Android模块独立开发的方法及装置 | |
CN110032407A (zh) | 提升cpu并行性能的方法及装置和电子设备 | |
US11144290B2 (en) | Method and apparatus for enabling autonomous acceleration of dataflow AI applications | |
CN112667202A (zh) | Mda与bpmn相结合的软件设计方法和装置 | |
CN114489653A (zh) | 基于编译器的数据处理方法、装置以及可读存储介质 | |
CN112596734A (zh) | 静态库生成方法及装置 | |
CN116756184B (zh) | 数据库实例处理方法、装置、设备、存储介质及程序产品 | |
CN114816425B (zh) | 将自动化语言程序转换为lua语言程序的方法和*** | |
CN116069331A (zh) | 一种代理类生成方法、装置、设备及存储介质 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |