CN102566984B - 一种配置参数的方法及装置 - Google Patents
一种配置参数的方法及装置 Download PDFInfo
- Publication number
- CN102566984B CN102566984B CN201010582800.0A CN201010582800A CN102566984B CN 102566984 B CN102566984 B CN 102566984B CN 201010582800 A CN201010582800 A CN 201010582800A CN 102566984 B CN102566984 B CN 102566984B
- Authority
- CN
- China
- Prior art keywords
- file
- class object
- xml
- parameters
- configuration
- 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.)
- Expired - Fee Related
Links
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种配置参数的方法及装置,用以提高参数配置的速度。该方法,包括:根据待配置的参数的属性,生成一个文本文件;将所述文本文件转换为类对象文件,并配置所述类对象文件中待配置的参数;将已配置参数的类对象文件进行序列化,得到配置文件。
Description
技术领域
本发明涉及计算机应用技术领域,特别涉及一种配置参数的方法及装置。
背景技术
随着计算机技术的迅速发展,针对不同的应用需求,已开发出不同的计算机应用系统。其中,有些应用系统在运行时,必须先对一些参数进行配置后才能进行使用。例如:一个内部的客户端的应用系统,需要通过代理服务器与外部互联网资源进行数据交换,此时,不仅需要设置IE代理,并且,还需要对客户端中该应用系统的一些网络代理参数进行配置,形成配置文件。这样,才能在运行该应用系统时,调用该配置文件,读取配置的参数,实现与外部互联网资源的数据交换。
目前,配置这些应用系统的参数的过程包括:生成一个包含所有待配置的参数的信息的可扩展标记语言(Extensible Markup Language,XML)文件,然后,通过文档对象模型(Document Objiect Model,DOM)修改该XML文件,从而实现这些应用系统的参数的配置。运行应用系统时读取已配置的参数同样采用DOM方法访问配置文件。
该DOM方式的参数配置过程包括:首先,定义一个XML文件的对象,例如:System.Xml.XmlDocument的对象m_document。然后,调用该对象Load(string filename)方法加载XML文件,通过查找该对象指定的节点(Node),定位到对应节点的数值,最后,对节点的数值修改后,调用m_document的Save(string FileName)方法进行保存,从而,实现文件参数的配置,获得配置文件。而DOM方式的访问已配置参数过程包括:定义配置文件的对象,然后调用该对象Load(string filename)方法加载配置文件,然后,通过查找该对象指定的节点(Node),定位到对应节点的访问,最后对节点的数据进行访问。
可见,现有DOM方式须将整个文档载入内存,然后生成一个相应节点的对象树,这样,当XML文件的数据量比较大或者文件结构比较复杂时,就会占用大量的内存空间,其解析的过程也会很复杂,时间也会比较长,从而,读取或修改数据的速度都比较慢。
发明内容
本发明实施例提供一种配置参数的方法及装置,用以提高参数配置的速度。
本发明实施例提供一种配置参数的方法,包括:
根据待配置的参数的属性,生成一个文本文件;所述文本文件包括:可扩展标记语言XML文件;
利用XML编辑器将所述文本文件转换为具有XML结构定义文件,根据所述XML结构定义文件,生成类对象文件,所述类对象文件为C#类对象文件;或者,
运行XML架构定义的工具,将所述文本文件生成强类型化的架构,并获得用属性批注的类对象文件,所述类对象文件为C#类对象文件;
将已配置参数的类对象文件进行序列化,得到配置文件;
调用所述配置文件,并对所述配置文件进行反序列化,得到已配置参数的可执行对象。
本发明实施例提供一种配置参数的装置,包括:
生成单元,用于根据待配置的参数的属性,生成一个文本文件;所述文本文件包括:可扩展标记语言XML文件;
配置单元,用于利用XML编辑器将所述文本文件转换为具有XML结构定义文件,根据所述XML结构定义文件,生成类对象文件,所述类对象文件为C#类对象文件;或者,
运行XML架构定义的工具,将所述文本文件生成强类型化的架构,并获得用属性批注的类对象文件,所述类对象文件为C#类对象文件;
序列化单元,用于将已配置参数的类对象文件进行序列化,得到配置文件;
反序列化单元,用于调用所述配置文件,并对所述配置文件进行反序列化,得到已配置参数的可执行对象。
本发明实施例中,根据待配置的参数的属性,生成一个文本文件,将所述文本文件转换为类对象文件,并配置所述类对象文件中待配置的参数,将已配置参数的类对象文件进行序列化,得到配置文件。这样,参数配置过程中,只需将文本文件转换为类对象文件,其过程也比较简单,不需要复杂的解析过程,节省了配置参数的时间,提高参数配置的速度。
附图说明
图1为本发明实施例中配置参数的流程图;
图2为本发明具体实施例中配置参数的流程图;
图3为本发明具体实施例中具有XML结构定义的文件的示意图
图4为本发明具体实施例中可执行对象的示意图;
图5为本发明实施例中配置参数装置的结构图。
具体实施方式
本发明实施例中,将所有待配置的参数生成一个文本文件之后,将该文件转换为类对象文件,对该类对象文件中的每个待配置的参数进行配置。然后,对配置了参数的类对象文件进行序列化,将对象转换为文本文件,从而形成配置文件进行保存,这样,当运行该应用系统时,即可调用该配置文件,并对该配置文件进行反序列化,得到已配置参数的可执行对象,从而运行该应用系统。
其中,序列化是将对象转换为容易传输的格式的过程。本发明实施例中,可序列化一个对象为一个文本文件。反之,反序列化是根据文件流重新构造对象。XML序列化中最主要的类是XmlSerializer类,它的最重要的方法是Serialize和Deserialize方法。
参见图1,配置参数的过程包括:
步骤101:根据待配置的参数的属性,生成一个文本文件。
文本文件包括:XML文件。
不同的应用系统,需要配置的参数不同。参数的属性包括:参数的名称,参数的类型。
步骤102:将文本文件转换为类对象文件。
这里,可以先将文本文件生成一个具有XML结构定义(XMLSchemasDefinition,XSD)文件,然后,根据该XSD文件,生成类对象文件。
其中,根据文本文件生成一个XSD文件可利用XML编辑器,例如:XMLSpy工具,XMLSpy工具是工业标准XML开发环境,能够建模、编辑、调试并转换所有XML相关技术,自动生成多种编程语言运行时代码的工具,包括:首先打开文本文件,这里,为XML文件,然后,利用DTD/Schema->Generate DTD/Schema,选择W3c Sehcma生成proxy.xsd文件。即生成一个XSD文件。
当然,可将该文本文件直接转换为XSD文件以及类对象文件,包括:
直接运行XML架构定义的工具生成一组强类型化的架构并用属性批注的类对象文件。XML架构定义(Xsd.exe)的工具从XDR、XML和XSD文件、或者从运行时程序集类,生成XML架构或公共语言运行时类。可利用现有Visual Studio的安装目录下的SDKv2.0Bin中的应用程序xsd.exe。例如:利用xsd.exe中命令:proxy.xsd/c/language:C#/outputdir:d:\这样,将proxy.xsd架构生成类语言为C#输出目录是d:\,从而,在D盘根目录下生成了一个名字叫proxy.cs的类对象文件,然后把该类对象文件引入到工程文件里。
步骤103:配置类对象文件中的每个待配置参数。
这里,对类对象文件中的每个待配置的参数进行赋值。可将上一步骤中生成的批注类进行实例化,然后对实例化对象中的每个待配置参数在程序里进行赋值。例如:Proxy proxy=New Proxy();proxy.IpAddress=”xxx.xxx.xxx.xxx”。
步骤104:将已配置参数的类对象文件进行序列化,得到配置文件。
当步骤101中文本文件为XML文件时,这里,配置文件为符合XML架构的文本文件。序列化为XML序列化。其中,
XML序列化仅将类对象文件中对象的公共字段和参数值序列化XML流。XML提供Serialize进行序列化。
通过上述步骤101-104可以获得应用系统的配置文件,并保存该配置文件。这样,本发明实施例即可根据运行环境,实时配置应用系统的参数。
在保存了应用系统的配置文件后,在运行该应用系统时,需要要访问该配置文件,获得参数的具体赋值,并应用获得的具体赋值,从而能运行该应用系统。因此,本发明实施例中,得到配置文件后,还包括:
调用配置文件,对该配置文件进行反序列化,得到已配置参数的可执行对象。从而,应用系统能够从可执行对象中获得参数的具体赋值,应用获得的具体赋值之后,该应用系统运行成功。
这里,当配置文件为具有XSD架构的文件时,可进行XML反序列化,即将文件流序列化为对象,必须将返回的对象强制转换为原始的对象类型。这里,可采用Deserialize进行反序列化。
下面结合说明书附图对本发明实施例作进一步详细描述。
本实施例中,内部的客户端的应用系统,需要通过代理服务器与外部互联网资源进行数据交换,设置IE代理之后,还需配置该应用系统的一些网络代理参数。本实施例中,文本文件为XML文件。参见图2,配置过程包括:
步骤201:根据待配置的参数的属性,生成一个XML的文件。
这里,待配置的参数包括:代理服务器IP地址、HTP协议端口号,用户名,密码,和域。
步骤202:将该XML文件转换为类对象文件。
这里,运行XML架构定义的工具,将该XML文件生成一个强类型化的架构和用属性批注的类对象文件。这里,分别如图3所示的具有XSD架构的文件,以及强类型批注类的类对象文件,该强类型批注类的类对象文件具体为:
步骤203:配置类对象文件中的每个待配置参数。
这里,对类对象文件进行实例化,然后对实例化对象中的每个待配置参数在程序里进行赋值。其中,
Proxy proxy=new Proxy();
proxy.IpAddress=“192.168.1.100”;
proxy.Port=808;
proxy.PortSpecified=true;
proxy.UserName=“zhangsan”;
proxy.Password=“123456”;
步骤204:将已配置参数的类对象文件进行XML序列化,得到配置文件,即得到符合XML架构的文本文件。
这里,XML序列化的代码段表示如下:
其中,FileDefiniens.XmlProxyPath是要输出的xml文件,Proxy是通过上文Proxy.xsd架构文件生成的类对象文件。通过上述逻辑,将proxy对象用XmlSerializer的Serialize序列化为文本文件。
通过上述过程,即可获得该应用系统的配置文件,该配置文件中保存了代理服务器IP地址、HTP协议端口号,用户名,密码,域等参数的具体赋值。
在运行该应用系统时,即可调用该配置文件,并调用配置文件,对该配置文件进行反序列化,得到已配置参数的可执行对象,从而,可运行该应用系统,实现客户端与外部互联网资源进行数据交换。
这里,配置文件为符合XML架构文本文件,对该符合XML架构文本文件进行XML反序列化,得到已配置参数的可执行对象。其中,XML反序列化的代码段表示如下:
这里,得到的配置参数的可执行对象如图4所示。
运行了如图4所示的可执行对象,该应用系统即可需要通过代理服务器与外部互联网资源进行数据交换。
根据上述的配置参数的方法,可以构建一种配置参数的装置,参见图5,该装置包括:生成单元100、配置单元200和序列化单元300。其中,
生成单元100,用于根据待配置的参数的属性,生成一个文本文件。
配置单元200,用于将所述文本文件转换为类对象文件,并配置所述类对象文件中待配置的参数。
序列化单元300,用于将已配置参数的类对象文件进行序列化,得到配置文件。
其中,生成单元100生成的文本文件包括:可扩展标记语言XML文件。
配置单元200包括:
转换子单元,用于利用XML编辑器将所述文本文件转换为具有XML结构定义文件;
类生成子单元,用于根据所述XML结构定义文件,生成类对象文件。
当然,在本发明另一实施例中,配置单元200,可具体用于运行XML架构定义的工具,将所述文本文件生成强类型化的架构,并获得用属性批注的类对象文件。
在上述配置参数的装置,该装置还包括:反序列化单元,用于调用所述配置文件,并对所述配置文件进行反序列化,得到已配置参数的可执行对象。
这样,运行应用系统时,该应用系统能够从可执行对象中获得参数的具体赋值,应用获得的具体赋值之后,该应用系统运行成功。
本发明实施例中,根据待配置的参数的属性,生成一个文本文件,将所述文本文件转换为类对象文件,并配置所述类对象文件中待配置的参数,将已配置参数的类对象文件进行序列化,得到配置文件。这样,参数配置过程中,只需将文本文件转换为类对象文件,其过程也比较简单,不需要复杂的解析过程,节省了配置参数的时间,提高参数配置的速度。
并且,运行应用系统时,只需对配置文件进行反序列化,即可得到已配置参数的可执行对象,从而,减少了应用系统因参数配置不正确带来的运行失败的几率,也提高了运行应用系统的速度。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。
Claims (2)
1.一种配置参数的方法,其特征在于,包括:
根据待配置的参数的属性,生成一个文本文件;所述文本文件包括:可扩展标记语言XML文件;
利用XML编辑器将所述文本文件转换为具有XML结构定义文件,根据所述XML结构定义文件,生成类对象文件,所述类对象文件为C#类对象文件;或者,
运行XML架构定义的工具,将所述文本文件生成强类型化的架构,并获得用属性批注的类对象文件,所述类对象文件为C#类对象文件;
将已配置参数的类对象文件进行序列化,得到配置文件;
调用所述配置文件,并对所述配置文件进行反序列化,得到已配置参数的可执行对象。
2.一种配置参数的装置,其特征在于,包括:
生成单元,用于根据待配置的参数的属性,生成一个文本文件;所述文本文件包括:可扩展标记语言XML文件;
配置单元,用于利用XML编辑器将所述文本文件转换为具有XML结构定义文件,根据所述XML结构定义文件,生成类对象文件,所述类对象文件为C#类对象文件;或者,
运行XML架构定义的工具,将所述文本文件生成强类型化的架构,并获得用属性批注的类对象文件,所述类对象文件为C#类对象文件;
序列化单元,用于将已配置参数的类对象文件进行序列化,得到配置文件;
反序列化单元,用于调用所述配置文件,并对所述配置文件进行反序列化,得到已配置参数的可执行对象。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010582800.0A CN102566984B (zh) | 2010-12-07 | 2010-12-07 | 一种配置参数的方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201010582800.0A CN102566984B (zh) | 2010-12-07 | 2010-12-07 | 一种配置参数的方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN102566984A CN102566984A (zh) | 2012-07-11 |
CN102566984B true CN102566984B (zh) | 2015-07-15 |
Family
ID=46412499
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201010582800.0A Expired - Fee Related CN102566984B (zh) | 2010-12-07 | 2010-12-07 | 一种配置参数的方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN102566984B (zh) |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102789495B (zh) * | 2012-07-13 | 2015-05-27 | 航天恒星科技有限公司 | 一种通用的文件自动化解析处理系统 |
CN103095726A (zh) * | 2013-02-07 | 2013-05-08 | 航天科工深圳(集团)有限公司 | 一种协议解析器的处理方法和装置 |
CN104142942A (zh) * | 2013-05-08 | 2014-11-12 | 北京航天长峰科技工业集团有限公司 | 一种海量异构数据的接入及标准化方法 |
CN104572146B (zh) * | 2013-10-16 | 2018-07-10 | 北大方正集团有限公司 | 钻机参数的配置系统和配置方法 |
CN106886390B (zh) * | 2015-12-15 | 2021-06-18 | 大唐软件技术股份有限公司 | 一种Java对象生成和转换方法和Java对象生成和转换装置 |
CN105867933A (zh) * | 2016-04-07 | 2016-08-17 | 北京北方微电子基地设备工艺研究中心有限责任公司 | 控制协议的实现方法及装置 |
CN107506190A (zh) * | 2017-08-16 | 2017-12-22 | 中国银行股份有限公司 | 基于Spring框架的XML文件修改方法及装置 |
CN109144565B (zh) * | 2018-09-20 | 2023-05-23 | 三六零科技集团有限公司 | 配置文件的处理方法和装置 |
CN109522044B (zh) * | 2018-10-31 | 2022-04-19 | 深圳市汇川技术股份有限公司 | 运动控制卡配置文件生成方法、设备及计算机可读存储器 |
CN112579421A (zh) * | 2019-09-27 | 2021-03-30 | 北大方正集团有限公司 | 接口测试方法、系统及计算机可读存储介质 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620533A (zh) * | 2009-08-05 | 2010-01-06 | 山东中创软件商用中间件股份有限公司 | 一种信息管理方法和装置 |
CN101699397A (zh) * | 2009-10-09 | 2010-04-28 | 上海宝信软件股份有限公司 | 实现Java与XML数据绑定的方法 |
CN101853156A (zh) * | 2010-05-12 | 2010-10-06 | 上海普元信息技术股份有限公司 | 构件化软件系统中实现Web Service调用的方法 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
GB0115690D0 (en) * | 2001-06-27 | 2001-08-22 | British Telecomm | Software system |
-
2010
- 2010-12-07 CN CN201010582800.0A patent/CN102566984B/zh not_active Expired - Fee Related
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101620533A (zh) * | 2009-08-05 | 2010-01-06 | 山东中创软件商用中间件股份有限公司 | 一种信息管理方法和装置 |
CN101699397A (zh) * | 2009-10-09 | 2010-04-28 | 上海宝信软件股份有限公司 | 实现Java与XML数据绑定的方法 |
CN101853156A (zh) * | 2010-05-12 | 2010-10-06 | 上海普元信息技术股份有限公司 | 构件化软件系统中实现Web Service调用的方法 |
Non-Patent Citations (1)
Title |
---|
郭荷清等.XML数据绑定及对象序列化的应用研究.《计算机应用与软件》.2006,第23卷(第5期),正文第1部分、第2部分第2.1-2.2小节、第3部分第3.2-3.4小节,图1-2. * |
Also Published As
Publication number | Publication date |
---|---|
CN102566984A (zh) | 2012-07-11 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN102566984B (zh) | 一种配置参数的方法及装置 | |
US5724503A (en) | Method and apparatus for interpreting exceptions in a distributed object system | |
US8037484B2 (en) | Building compound extensible AJAX applications | |
EP3014479B1 (en) | Omega names: name generation and derivation | |
US8201153B2 (en) | Configurable Java Server pages processing | |
CN103608802B (zh) | 取回的文件和源文件之间的选择映射的方法和系统 | |
US20140372970A1 (en) | Method to auto generate jax-rs rest service implementation classes from existing interfaces | |
US10574724B2 (en) | Automatic discovery of management nodes and generation of CLI using HA module | |
US20130318160A1 (en) | Device and Method for Sharing Data and Applications in Peer-to-Peer Computing Environment | |
CN101909082B (zh) | 一种基于模型驱动的网格门户配置系统及配置方法 | |
JP2001101016A (ja) | スクリプト変数を自動的に同期化するためのメカニズム | |
CN104009880B (zh) | Web测试方法、代理服务器和Web测试装置 | |
JP6016808B2 (ja) | Webアクセスを実装するための方法およびサーバシステム | |
US11704099B1 (en) | Discovering matching code segments according to index and comparative similarity | |
US11720534B2 (en) | Remote code execution | |
US7774386B2 (en) | Applying abstraction to object markup definitions | |
US7610292B2 (en) | Systems and methods for storing a dataset having a hierarchical data structure in a database | |
CN111753140A (zh) | Xml文件解析方法及相关设备 | |
US9129035B2 (en) | Systems, methods, and apparatus for accessing object representations of data sets | |
US9594548B2 (en) | Dynamically updating templated applications | |
JP5039946B2 (ja) | クライアント装置およびサーバ装置の間の通信を中継する技術 | |
CN109614084A (zh) | web程序及其快速开发框架、开发方法与相关设备 | |
CN115712416A (zh) | 一种代码生成方法、装置及设备 | |
CN112148299A (zh) | 字节码对象拷贝方法、装置、设备和存储介质 | |
US7546313B1 (en) | Method and framework for using XML files to modify network resource configurations |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant | ||
CF01 | Termination of patent right due to non-payment of annual fee |
Granted publication date: 20150715 Termination date: 20191207 |
|
CF01 | Termination of patent right due to non-payment of annual fee |