CN104408120A - 源代码的处理方法及装置 - Google Patents

源代码的处理方法及装置 Download PDF

Info

Publication number
CN104408120A
CN104408120A CN201410693976.1A CN201410693976A CN104408120A CN 104408120 A CN104408120 A CN 104408120A CN 201410693976 A CN201410693976 A CN 201410693976A CN 104408120 A CN104408120 A CN 104408120A
Authority
CN
China
Prior art keywords
file
source code
code file
key
path
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.)
Granted
Application number
CN201410693976.1A
Other languages
English (en)
Other versions
CN104408120B (zh
Inventor
马燕龙
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201410693976.1A priority Critical patent/CN104408120B/zh
Publication of CN104408120A publication Critical patent/CN104408120A/zh
Application granted granted Critical
Publication of CN104408120B publication Critical patent/CN104408120B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F8/00Arrangements for software engineering
    • G06F8/30Creation or generation of source code
    • G06F8/38Creation or generation of source code for implementing user interfaces

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种源代码的处理方法及装置,其中,该方法包括:通过将包含了源代码的源代码文件添加到指定目录,并根据源代码文件在指定目录中的位置生成源代码文件路径;使用T4模板创建XML文件,其中,XML文件包含根据源代码文件路径获取到的源代码文件;根据解析XML文件获取到的源代码文件构造源代码文件数组;根据源代码文件数组中的源代码文件及其名字构造字典,其中,字典的键为源代码文件的名字,字典的键对应的键值为源代码文件的内容。本发明解决了现有技术中添加源代码必须手动的将大量的源代码复制到XML文件中,操作繁琐导致容易出错的问题,实现了无需手动添加样例代码、提高了开发的效率的技术效果。

Description

源代码的处理方法及装置
技术领域
本发明涉及计算机软件领域,具体而言,涉及一种源代码的处理方法及装置。
背景技术
应用程序Silverlight Toolkit为自己的Toolkit控件提供了很多样例,样例中包括了C#、VB、XAML(eXtensible Application Markup Language,可扩展应用程序标记语言)代码,帮助理解如何使用这些控件,如果下载并安装应用程序Silverlight Toolkit的话,可以在应用程序中查看样例工程的源代码,而开发人员也可以向应用程序添加新的样例代码。
这里需要说明的是,向已有的样例框架添加新的样例时往往会出现如下问题:每次添加新控件样例时,控件样例的源代码必须手动添加到XAML文件(ExtensibleMarkup Language,可扩展标记语言)中,用来定义展示逻辑的,比如有几个Button,Button大小,Button位置等),而且源代码通常都比较多,涉及到格式化等问题,因此这样的重复操作繁琐而且容易出错。
针对现有技术中添加源代码必须手动的将大量的源代码复制到XML文件中,操作繁琐导致容易出错的问题,目前尚未提出有效的解决方案。
发明内容
本发明的主要目的在于提供一种源代码的处理方法及装置,以解决现有技术中添加源代码必须手动的将大量的源代码复制到XML文件中,操作繁琐导致容易出错的问题。
为了实现上述目的,根据本发明实施例的一个方面,提供了一种源代码的处理方法。该方法包括:将包含了源代码的源代码文件添加到指定目录,并根据源代码文件在指定目录中的位置生成源代码文件路径;使用T4模板创建XML文件,其中,XML文件包含根据源代码文件路径获取到的源代码文件;根据解析XML文件获取到的源代码文件构造源代码文件数组;根据源代码文件数组中的源代码文件及其名字构造字典,其中,字典的键为源代码文件的名字,字典的键对应的键值为源代码文件的内容。
为了实现上述目的,根据本发明实施例的另一方面,提供了一种源代码的处理装置。该装置包括:添加单元,用于将包含了源代码的源代码文件添加到指定目录,并根据源代码文件在指定目录中的位置生成源代码文件路径;创建单元,用于使用T4模板创建XML文件,其中,XML文件包含根据源代码文件路径获取到的源代码文件;第一构造单元,用于根据解析XML文件获取到的源代码文件构造源代码文件数组;第二构造单元,用于根据源代码文件数组中的源代码文件及其名字构造字典,其中,字典的键为源代码文件的名字,字典的键对应的键值为源代码文件的内容。
根据发明实施例,通过将包含了源代码的源代码文件添加到指定目录,并根据源代码文件在指定目录中的位置生成源代码文件路径;使用T4模板创建XML文件,其中,XML文件包含根据源代码文件路径获取到的源代码文件;根据解析XML文件获取到的源代码文件构造源代码文件数组;根据源代码文件数组中的源代码文件及其名字构造字典,其中,字典的键为源代码文件的名字,字典的键对应的键值为源代码文件的内容,解决了现有技术中添加源代码必须手动的将大量的源代码复制到XML文件中,操作繁琐导致容易出错的问题,实现了无需手动添加样例代码、提高了开发的效率的技术效果。
附图说明
构成本申请的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例一的源代码的处理方法的流程图;
图2是根据本发明实施例二的源代码的处理装置的结构示意图;
图3是根据本发明实施例二的可选的源代码的处理装置的结构示意图;以及
图4是根据本发明实施例二的可选的源代码的处理装置的结构示意图。
具体实施方式
需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互组合。下面将参考附图并结合实施例来详细说明本发明。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
本申请专业术语解释如下:
1.T4模板是在Visual Studio中使用的一个代码生成工具,能够自动生成开发过程中需要的代码。
2.HTML编码,在HTML或XML中,有些字符是有特殊意义的,比如<>,表示里面包含的是一个元素,如果<>需要表示为普通字符的话,那么需要将这些特殊字符进行编码,比如<被编码为“&lt;”,这套编码规则称为HTML编码。
实施例一
本发明实施例提供了一种源代码的处理方法。
图1是根据本发明实施例的源代码的处理方法流程图。如图1所示,该方法包括步骤如下:
步骤S10,将包含了源代码的源代码文件添加到指定目录,并根据源代码文件在指定目录中的位置生成源代码文件路径。
具体的,上述源代码可以是样例代码,在一种可选的实施例中,上述样例可以是应用程序Silverlight Toolkit中的Toolkit控件样例,在本方案中,可以首先将上述样例代码添加任意指定目录,并根据上述样例代码在上述指定目录中的具体位置来生成一个路径,通过该路径可以获取到上述样例代码。
可选的,上述指定目录中可以存放多个不同的源代码文件。
步骤S12,使用T4模板创建XML文件,其中,XML文件包含根据源代码文件路径获取到的源代码文件。
具体的,可以添加T4模板,使用上述T4模板通过枚举上述步骤S10中的指定目录下的所有源代码文件,进而将上述所有的源代码文件添加到XML文件中。
步骤S14,根据解析XML文件获取到的源代码文件构造源代码文件数组。
具体的,上述源代码文件数组中可以包括多个源代码文件,这里需要说明的是,上述多个源代码文件分别拥有不同的文件名字,该名字可以是某个控件的名字,例如,TreeView.cs,TreeView.xaml这两个代码名字是定义树形控件(TreeView控件)的。
步骤S16,根据源代码文件数组中的源代码文件及其名字构造字典,其中,字典的键为源代码文件的名字,字典的键对应的键值为源代码文件的内容。
具体的,可以通过上述源代码文件的数组来构造字典,字典的键和键值可以分别为上述源代码文件的名字和源代码文件的内容,即可以通过源代码文件的名字来获取到源代码文件名字对应的源代码文件的内容。
这里需要说明的是,对于用户而言,只需要将源代码文件放入指定目录下,本申请提供的方案自动执行上述多个步骤进而构造字典,可选的,上述字典可以运行于应用程序中。
本发明实施例通过首先将包含了源代码的源代码文件添加到指定目录,并根据源代码文件在指定目录中的位置生成源代码文件路径,接着使用T4模板创建XML文件,接着根据解析XML文件获取到的源代码文件构造源代码文件数组;根据源代码文件数组中的源代码文件及其名字构造字典。解决了现有的添加源代码的方法中,在不考虑源代码的路径的情况下手动的将大量的具有重复部分的源代码复制到XML文件中,操作繁琐且容易出错的问题。
可选的,上述源代码文件可以包含两部分:XAML文件和代码文件,步骤S12中使用T4模板创建XML文件的步骤还可以包括:
步骤S121,在T4模板中为XAML文件和代码文件分别创建源代码元素,其中,源代码元素中包含路径元素和文件内容元素。
具体的,上述样例的代码可以包含两部分:一个XAML文件,后缀名为.xaml,这个文件实质上为XML文件,用来定义展示逻辑的,另一个为代码文件,如果用上述源代码,如果是C#语言的话,样例代码文件的后缀名为.cs,如果用VB的话,样例代码文件的后缀名为.vb。
步骤S122,将XAML文件和代码文件的路径分别添加到其对应的路径元素中。
步骤S123,将XAML文件和代码文件的内容进行编码后分别添加到其对应的文件内容元素中。
具体的,可以添加T4模板,枚举上述指定目录下的所有源代码文件,为每个源代码文件创建SourceFile元素,将源文件路径添加Path元素中,读取源文件的内容并进行HTML编码,将编码后的内容输出到Source元素中,上述描述结合下面代码所示:
<?xml version="1.0"?>
<ArrayOfSourceFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SourceFile>
<Path>源文件路径</Path>
<Source>文件源代码</Source>
</SourceFile>
<SourceFile>
<Path>源文件路径</Path>
<Source>文件源代码</Source>
</SourceFile>
<ArrayOfSourceFile/>
这里需要说明的是,上述代码中,第一个sourcefile文件对应步骤S121中的XAML文件,第二个sourcefile文件则对应代码文件。
可选的,步骤S14,根据解析XML文件获取到的源代码文件构造源代码文件数组的步骤可以包括:
步骤S141,为每个源代码文件元素创建源代码文件对象,其中,源代码文件对象包含路径属性和文件内容属性。
步骤S142,使用XML文件中的路径元素填充路径属性。
步骤S143,使用XML文件中的文件内容元素填充文件内容属性。
步骤S144,将所有的源代码文件对象添加到源代码文件数组中。
具体的,在本方案中,可以首先定义SourceFile类型,为该类定义Path、Source属性,这里需要说明的是,Path、Source属性分别对应步骤S141中的路径属性和文件内容属性。
然后,构造SourceFile数组,在一种应用本方案的可选的实施例中,在Silverlight应用程序启动时解析XML文件,为每个SourceFile元素创建SourceFile对象,对象的Path属性使用Path元素对应的值填充,Source属性使用Source元素填充,将所有解析的SourceFile对象添加到SourceFile数组中。这里需要说明的是,SourceFile数组即为上述步骤S144中的源代码数组,SourceFile对象即为步骤S144中的源代码文件对象。
可选的,步骤S16,根据源代码文件数组中的源代码文件及其名字构造字典之后,本实施例提供的方案还可以包括:
步骤S161,接收用户输入的键。
具体的,上述键在应用程序中可以为一个标签,该标签对应的代码文件的内容即为键值,例如,用户可以在应用程序界面中点击某个标签,点击标签后,应用程序将标签对应的代码文件内容予以显示。
可选的,用户也可以在应用程序中的搜索框中输入标签的内容以获取标签对应代码文件的内容。
步骤S162,根据用户输入的键获取键对应的键值,并将键对应的键值所表征的源代码文件的内容显示在应用程序界面中。
可选的,上述步骤S161中用户输入的键为源代码文件名字,用户输入的键对应的键值包括两个文件的内容:XAML文件和代码文件。
具体的,步骤S16的字典用于存储相同名字的样例的源代码文件,包括XAML文件和代码文件,字典Key为文件名称(不包含后缀名),Value为SourceFile集合,这个集合就是这个样例包含XAML文件和代码文件,将SourceFile数组根据文件名称(不包含后缀名)进行分组,使用每组键值即文件名做为字典键值,该分组下所有SourceFile即为Value。
步骤S162,根据用户输入的键获取键对应的键值,并将键对应的键值所表征的源代码文件的内容显示在应用程序界面中的步骤可以包括:
步骤S1621,在字典中根据用户输入的源代码文件名字获取其对应的XAML文件和代码文件。
具体的,当在界面上选择某个文件后需要查询文件源代码时,根据文件名称在上面构造好的字典中查找这个文件对应的SourceFile集合,这里需要说明的是,上述文件名称即为步骤S1621中的源代码文件名字,上述SourceFile集合对应的两个文件,一个是XAML文件,后缀名是.xaml另一个是代码文件,后缀名可以为.vb。
步骤S1622,根据用户输入的源代码文件的后缀名来将XAML文件和/或代码文件进行解码并显示在应用程序界面上。
具体的,当用户选择不同语言的源代码时,可以输入不同的后缀名,根据这个语言对应的后缀名在SourceFile集合查找后缀名相同的SourceFile对象,将SourceFile对象的Source属性内容进行HTML解码,将解码后的内容显示在应用程序的界面中。
下面本申请在具体的应用场景下详细描述:
本方案分为装置准备、装置处理、装置使用三个方面。
装置准备:
首先,将所有样例代码都需要放到指定目录下,这里需要说明的是样例代码包含两个文件,一个XAML文件,后缀名为.xaml,这个文件其实就是XML文件,用来定义展示逻辑的,一个为代码文件,如果用C#语言的话后缀名为.cs,如果用VB的话,后缀名为.vb
然后,添加T4模板,枚举这个目录下的所有源文件,为每个源文件创建SourceFile元素,将源文件路径添加Path元素中,读取源文件的内容并进行HTML编码,将编码后的内容输出到Source元素中,如下代码所示:
<?xml version="1.0"?>
<ArrayOfSourceFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SourceFile>
<Path>源文件路径</Path>
<Source>文件源代码</Source>
</SourceFile>
<SourceFile>
<Path>源文件路径</Path>
<Source>文件源代码</Source>
</SourceFile>
<ArrayOfSourceFile/>
装置处理:
首先,定义SourceFile类型,为该类定义Path、Source属性。
然后,构造SourceFile数组,Silverlight应用程序启动时解析XML文件,为每个SourceFile元素创建SourceFile对象,对象的Path属性使用Path元素对应的值填充,Source属性使用Source元素填充,将所有解析的SourceFile对象添加到SourceFile数组中。
接着,构造字典,上述字典用于存储相同样例的代码文件,包括XAML文件和代码文件,字典Key为文件名称(不包含后缀名),Value为SourceFile集合,这个集合就是这个样例包含XAML文件和代码文件。将SourceFile数组根据文件名称(不包含后缀名)进行分组,使用每组键值即文件名做为字典键值,该分组下所有SourceFile即为Value。
装置使用:
首先,当在界面上选择某个文件后需要查询文件源代码时,根据文件名称在上面构造好的字典中查找这个文件对应的SourceFile集合。
然后,当用户选择不同语言的源代码时,根据这个语言对应的后缀名在SourceFile集合查找后缀名相同的SourceFile对象,将SourceFile对象的Source属性内容进行HTML解码,将解码后的内容显示在界面中。
综上,本方案实现了如下技术效果:
在添加新的控件样例时,只需将代码文件放至指定目录,代码文件会被自动读取,在应用程序运行时自动展现这些代码文件,实现了样例代码的自动添加功能即不需要再手动添加样例代码,这样减轻了开发的负担,提高了效率并实现了自动化,减少了人为失误导致的错误。
实施例二
本发明实施例还提供了一种源代码的处理装置,如图2所示,该装置可以包括:
添加单元20,用于将包含了源代码的源代码文件添加到指定目录,并根据源代码文件在指定目录中的位置生成源代码文件路径。
具体的,上述源代码可以是样例代码,在一种可选的实施例中,上述样例可以是应用程序Silverlight Toolkit中的Toolkit控件样例,在本方案中,可以首先将上述样例代码添加任意指定目录,并根据上述样例代码在上述指定目录中的具体位置来生成一个路径,通过该路径可以获取到上述样例代码。
创建单元30,用于使用T4模板创建XML文件,其中,XML文件包含根据源代码文件路径获取到的源代码文件。
具体的,可以添加T4模板,使用上述T4模板通过枚举上述指定目录下的所有源代码文件,进而将上述所有的源代码文件添加到XML文件中。
第一构造单元40,用于根据解析XML文件获取到的源代码文件构造源代码文件数组。
具体的,上述源代码文件数组中可以包括多个源代码文件,这里需要说明的是,上述多个源代码文件分别拥有不同的文件名字,该名字可以是某个控件的名字,例如,TreeView.cs,TreeView.xaml这两个代码名字是定义树形控件(TreeView控件)的。
第二构造单元50,用于根据源代码文件数组中的源代码文件及其名字构造字典,其中,字典的键为源代码文件的名字,字典的键对应的键值为源代码文件的内容。
具体的,可以通过上述源代码文件的数组来构造字典,字典的键和键值可以分别为上述源代码文件的名字和源代码文件的内容,即可以通过源代码文件的名字来获取到源代码文件名字对应的源代码文件的内容。
这里需要说明的是,对于用户而言,只需要将源代码文件放入指定目录下,本申请提供的方案自动执行上述多个步骤进而构造字典,可选的,上述字典可以运行于应用程序中。
本发明实施例通过首先将包含了源代码的源代码文件添加到指定目录,并根据源代码文件在指定目录中的位置生成源代码文件路径,接着使用T4模板创建XML文件,接着根据解析XML文件获取到的源代码文件构造源代码文件数组;根据源代码文件数组中的源代码文件及其名字构造字典。解决了现有的添加源代码的方法中,在不考虑源代码的路径的情况下手动的将大量的具有重复部分的源代码复制到XML文件中,操作繁琐且容易出错的问题。
可选的,如图3所示,上述创建单元30还可以包括:
第一创建模块301,用于在T4模板中为XAML文件和代码文件分别创建源代码元素,其中,源代码元素中包含路径元素和文件内容元素。
具体的,上述样例的代码可以包含两部分:一个XAML文件,后缀名为.xaml,这个文件实质上为XML文件,用来定义展示逻辑的,另一个为代码文件,如果用上述源代码,如果是C#语言的话,样例代码文件的后缀名为.cs,如果用VB的话,样例代码文件的后缀名为.vb。
第一添加模块302,用于将XAML文件和代码文件的路径分别添加到其对应的路径元素中。
第二添加模块303,用于将XAML文件和代码文件的内容进行编码后分别添加到其对应的文件内容元素中。
具体的,可以添加T4模板,枚举上述指定目录下的所有源代码文件,为每个源代码文件创建SourceFile元素,将源文件路径添加Path元素中,读取源文件的内容并进行HTML编码,将编码后的内容输出到Source元素中,上述描述结合下面代码所示:
<?xml version="1.0"?>
<ArrayOfSourceFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SourceFile>
<Path>源文件路径</Path>
<Source>文件源代码</Source>
</SourceFile>
<SourceFile>
<Path>源文件路径</Path>
<Source>文件源代码</Source>
</SourceFile>
<ArrayOfSourceFile/>
这里需要说明的是,上述代码中,第一个sourcefile文件对应上述XAML文件,第二个sourcefile文件则对应上述代码文件。
可选的,如图4所示,上述第一构造单元40还可以包括:
第二创建模块401,用于为每个源代码文件元素创建源代码文件对象,其中,源代码文件对象包含路径属性和文件内容属性。
第一填充模块402,用于使用XML文件中的路径元素填充路径属性。
第二填充模块403,用于使用XML文件中的文件内容元素填充文件内容属性。
第三添加模块404,用于将所有的源代码文件对象添加到源代码文件数组中。
具体的,在本方案中,可以首先定义SourceFile类型,为该类定义Path、Source属性,这里需要说明的是,Path、Source属性分别对应步骤S141中的路径属性和文件内容属性。
然后,构造SourceFile数组,在一种应用本方案的可选的实施例中,在Silverlight应用程序启动时解析XML文件,为每个SourceFile元素创建SourceFile对象,对象的Path属性使用Path元素对应的值填充,Source属性使用Source元素填充,将所有解析的SourceFile对象添加到SourceFile数组中。这里需要说明的是,SourceFile数组即为实施例一中的步骤S144中的源代码数组,SourceFile对象即为实施例一中的步骤S144中的源代码文件对象。
可选的,本发明实施例提供的装置还可以包括:
接收单元60,用于接收用户输入的键。
具体的,上述键在应用程序中可以为一个标签,该标签对应的代码文件的内容即为键值,例如,用户可以在应用程序界面中点击某个标签,点击标签后,应用程序将标签对应的代码文件内容予以显示。
具体的,上述键在应用程序中可以为一个标签,该标签对应的代码文件的内容即为键值,例如,用户可以在应用程序界面中点击某个标签,点击标签后,应用程序将标签对应的代码文件内容予以显示。
可选的,用户也可以在应用程序中的搜索框中输入标签的内容以获取标签对应代码文件的内容。
获取单元70,用于根据用户输入的键获取键对应的键值,并将键对应的键值所表征的源代码文件的内容显示在应用程序界面中。
可选的,上述接收单元60中用户输入的键为源代码文件名字,用户输入的键对应的键值包括两个文件的内容:XAML文件和代码文件。
具体的,步骤S16的字典用于存储相同名字的样例的源代码文件,包括XAML文件和代码文件,字典Key为文件名称(不包含后缀名),Value为SourceFile集合,这个集合就是这个样例包含XAML文件和代码文件,将SourceFile数组根据文件名称(不包含后缀名)进行分组,使用每组键值即文件名做为字典键值,该分组下所有SourceFile即为Value。
可选的,上述用户输入的键可以为源代码文件名字,用户输入的键对应的键值可以包括两个文件的内容:XAML文件和代码文件。
上述获取单元70还可以包括:
获取模块701,用于在字典中根据用户输入的源代码文件名字获取其对应的XAML文件和代码文件。
具体的,当在界面上选择某个文件后需要查询文件源代码时,根据文件名称在上面构造好的字典中查找这个文件对应的SourceFile集合,这里需要说明的是,上述文件名称即为步骤S1621中的源代码文件名字,上述SourceFile集合对应的两个文件,一个是XAML文件,后缀名是.xaml另一个是代码文件,后缀名可以为.vb。
显示模块702,用于根据用户输入的源代码文件的后缀名来将XAML文件和/或代码文件进行解码并显示在应用程序界面上。
具体的,当用户选择不同语言的源代码时,可以输入不同的后缀名,根据这个语言对应的后缀名在SourceFile集合查找后缀名相同的SourceFile对象,将SourceFile对象的Source属性内容进行HTML解码,将解码后的内容显示在应用程序的界面中。
下面本申请在具体的应用场景下详细描述:
本方案分为装置准备、装置处理、装置使用三个方面。
装置准备:
首先,将所有样例代码都需要放到指定目录下,这里需要说明的是样例代码包含两个文件,一个XAML文件,后缀名为.xaml,这个文件其实就是XML文件,用来定义展示逻辑的,一个为代码文件,如果用C#语言的话后缀名为.cs,如果用VB的话,后缀名为.vb。
然后,添加T4模板,枚举这个目录下的所有源文件,为每个源文件创建SourceFile元素,将源文件路径添加Path元素中,读取源文件的内容并进行HTML编码,将编码后的内容输出到Source元素中,如下代码所示:
<?xml version="1.0"?>
<ArrayOfSourceFile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xmlns:xsd="http://www.w3.org/2001/XMLSchema">
<SourceFile>
<Path>源文件路径</Path>
<Source>文件源代码</Source>
</SourceFile>
<SourceFile>
<Path>源文件路径</Path>
<Source>文件源代码</Source>
</SourceFile>
<ArrayOfSourceFile/>
装置处理:
首先,定义SourceFile类型,为该类定义Path、Source属性。
然后,构造SourceFile数组,Silverlight应用程序启动时解析XML文件,为每个SourceFile元素创建SourceFile对象,对象的Path属性使用Path元素对应的值填充,Source属性使用Source元素填充,将所有解析的SourceFile对象添加到SourceFile数组中。
接着,构造字典,上述字典用于存储相同样例的代码文件,包括XAML文件和代码文件,字典Key为文件名称(不包含后缀名),Value为SourceFile集合,这个集合就是这个样例包含XAML文件和代码文件。将SourceFile数组根据文件名称(不包含后缀名)进行分组,使用每组键值即文件名做为字典键值,该分组下所有SourceFile即为Value。
装置使用:
首先,当在界面上选择某个文件后需要查询文件源代码时,根据文件名称在上面构造好的字典中查找这个文件对应的SourceFile集合。
然后,当用户选择不同语言的源代码时,根据这个语言对应的后缀名在SourceFile集合查找后缀名相同的SourceFile对象,将SourceFile对象的Source属性内容进行HTML解码,将解码后的内容显示在界面中。
综上,本方案实现了如下技术效果:
在添加新的控件样例时,只需将代码文件放至指定目录,代码文件会被自动读取,在应用程序运行时自动展现这些代码文件,实现了样例代码的自动添加功能即不需要再手动添加样例代码,这样减轻了开发的负担,提高了效率并实现了自动化,减少了人为失误导致的错误。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本发明并不受所描述的动作顺序的限制,因为依据本发明,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本发明所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、移动终端、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅为本发明的优选实施例而已,并不用于限制本发明,对于本领域的技术人员来说,本发明可以有各种更改和变化。凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (10)

1.一种源代码的处理方法,其特征在于,包括:
将包含了源代码的源代码文件添加到指定目录,并根据所述源代码文件在所述指定目录中的位置生成源代码文件路径;
使用T4模板创建XML文件,其中,所述XML文件包含根据所述源代码文件路径获取到的所述源代码文件;
根据解析所述XML文件获取到的所述源代码文件构造源代码文件数组;
根据所述源代码文件数组中的源代码文件及其名字构造字典,其中,所述字典的键为所述源代码文件的名字,所述字典的键对应的键值为所述源代码文件的内容。
2.根据权利要求1所述的方法,其特征在于,所述源代码文件包含两部分:XAML文件和代码文件,其中,使用T4模板创建XML文件的步骤包括:
在所述T4模板中为所述XAML文件和代码文件分别创建源代码元素,其中,源代码元素中包含路径元素和文件内容元素;
将所述XAML文件和代码文件的路径分别添加到其对应的所述路径元素中;
将所述XAML文件和代码文件的内容进行编码后分别添加到其对应的文件内容元素中。
3.根据权利要求2所述的方法,其特征在于,根据解析所述XML文件获取到的所述源代码文件构造源代码文件数组的步骤包括:
为每个所述源代码元素创建源代码文件对象,其中,所述源代码文件对象包含路径属性和文件内容属性;
使用所述XML文件中的路径元素填充所述路径属性;
使用所述XML文件中的文件内容元素填充所述文件内容属性;
将所有的源代码文件对象添加到源代码文件数组中。
4.根据权利要求3所述的方法,其特征在于,在根据所述源代码文件数组中的源代码文件及其名字构造字典之后,所述方法还包括:
接收用户输入的键;
根据所述用户输入的键获取所述键对应的键值,并将所述键对应的键值所表征的所述源代码文件的内容显示在应用程序界面中。
5.根据权利要求4所述的方法,其特征在于,所述用户输入的键为源代码文件名字,所述用户输入的键对应的键值包括两个文件的内容:XAML文件和代码文件,其中,所述根据用户输入的键获取所述键对应的键值,并将所述键对应的键值显示在应用程序界面中的步骤包括:
在所述字典中根据用户输入的源代码文件名字获取其对应的XAML文件和代码文件;
根据所述用户输入的源代码文件的后缀名来将所述XAML文件和/或代码文件进行解码并显示在所述应用程序界面上。
6.一种源代码的处理装置,其特征在于,包括:
添加单元,用于将包含了源代码的源代码文件添加到指定目录,并根据所述源代码文件在所述指定目录中的位置生成源代码文件路径;
创建单元,用于使用T4模板创建XML文件,其中,所述XML文件包含根据所述源代码文件路径获取到的所述源代码文件;
第一构造单元,用于根据解析所述XML文件获取到的所述源代码文件构造源代码文件数组;
第二构造单元,用于根据所述源代码文件数组中的源代码文件及其名字构造字典,其中,所述字典的键为所述源代码文件的名字,所述字典的键对应的键值为所述源代码文件的内容。
7.根据权利要求6所述的装置,其特征在于,所述源代码文件包含两部分:XAML文件和代码文件,其中,所述创建单元包括:
第一创建模块,用于在所述T4模板中为所述XAML文件和代码文件分别创建源代码元素,其中,源代码元素中包含路径元素和文件内容元素;
第一添加模块,用于将所述XAML文件和代码文件的路径分别添加到其对应的所述路径元素中;
第二添加模块,用于将所述XAML文件和代码文件的内容进行编码后分别添加到其对应的文件内容元素中。
8.根据权利要求7所述的装置,其特征在于,所述第一构造单元包括:
第二创建模块,用于为每个所述源代码元素创建源代码文件对象,其中,所述源代码文件对象包含路径属性和文件内容属性;
第一填充模块,用于使用所述XML文件中的路径元素填充所述路径属性;
第二填充模块,用于使用所述XML文件中的文件内容元素填充所述文件内容属性;
第三添加模块,用于将所有的源代码文件对象添加到源代码文件数组中。
9.根据权利要求8所述的装置,其特征在于,所述装置还包括:
接收单元,用于接收用户输入的键;
获取单元,用于根据所述用户输入的键获取所述键对应的键值,并将所述键对应的键值所表征的所述源代码文件的内容显示在应用程序界面中。
10.根据权利要求9所述的装置,其特征在于,所述用户输入的键为源代码文件名字,所述用户输入的键对应的键值包括两个文件的内容:XAML文件和代码文件,其中,所述获取单元包括:
获取模块,用于在所述字典中根据用户输入的源代码文件名字获取其对应的XAML文件和代码文件;
显示模块,用于根据所述用户输入的源代码文件的后缀名来将所述XAML文件和/或代码文件进行解码并显示在所述应用程序界面上。
CN201410693976.1A 2014-11-26 2014-11-26 源代码的处理方法及装置 Active CN104408120B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201410693976.1A CN104408120B (zh) 2014-11-26 2014-11-26 源代码的处理方法及装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201410693976.1A CN104408120B (zh) 2014-11-26 2014-11-26 源代码的处理方法及装置

Publications (2)

Publication Number Publication Date
CN104408120A true CN104408120A (zh) 2015-03-11
CN104408120B CN104408120B (zh) 2019-04-12

Family

ID=52645751

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201410693976.1A Active CN104408120B (zh) 2014-11-26 2014-11-26 源代码的处理方法及装置

Country Status (1)

Country Link
CN (1) CN104408120B (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109214043A (zh) * 2018-07-20 2019-01-15 北京航空航天大学 数字飞行器动力学环境信息传输源代码人工智能书写方法
CN112579079A (zh) * 2019-09-29 2021-03-30 北京向上一心科技有限公司 文件的处理方法、装置、计算机设备和存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1609792A (zh) * 2003-10-24 2005-04-27 微软公司 计算机程序的编程接口
CN101512503A (zh) * 2005-04-29 2009-08-19 微软公司 Xml应用程序框架
CN102508669A (zh) * 2011-11-14 2012-06-20 浙江鸿程计算机系统有限公司 一种程序代码自动生成方法
CN102968306A (zh) * 2012-11-29 2013-03-13 广东全通教育股份有限公司 一种基于数据模型驱动的代码自动生成方法和系统
CN103077038A (zh) * 2013-01-31 2013-05-01 北京金和软件股份有限公司 动态生成和编译.net项目的方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN1609792A (zh) * 2003-10-24 2005-04-27 微软公司 计算机程序的编程接口
CN101512503A (zh) * 2005-04-29 2009-08-19 微软公司 Xml应用程序框架
CN102508669A (zh) * 2011-11-14 2012-06-20 浙江鸿程计算机系统有限公司 一种程序代码自动生成方法
CN102968306A (zh) * 2012-11-29 2013-03-13 广东全通教育股份有限公司 一种基于数据模型驱动的代码自动生成方法和系统
CN103077038A (zh) * 2013-01-31 2013-05-01 北京金和软件股份有限公司 动态生成和编译.net项目的方法

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN109214043A (zh) * 2018-07-20 2019-01-15 北京航空航天大学 数字飞行器动力学环境信息传输源代码人工智能书写方法
CN109214043B (zh) * 2018-07-20 2023-04-07 北京航空航天大学 数字飞行器动力学环境信息传输源代码人工智能书写方法
CN112579079A (zh) * 2019-09-29 2021-03-30 北京向上一心科技有限公司 文件的处理方法、装置、计算机设备和存储介质

Also Published As

Publication number Publication date
CN104408120B (zh) 2019-04-12

Similar Documents

Publication Publication Date Title
US20180189035A1 (en) Application development tool using graphic objects to bind object sets of different distinct divisions of a design pattern
US20180307978A1 (en) Multi-Modal Construction of Deep Learning Networks
CN112835560A (zh) Web多终端低代码智能软件开发平台
US8756407B2 (en) Configuration rule prototyping tool
CN114424257A (zh) 使用机器学习对表格数据进行自动描绘和提取
US20180189033A1 (en) Graphical software meta-development tool
CN110489087B (zh) 一种生成分形结构的方法、装置、介质和电子设备
CN104267966A (zh) 软件的程序代码的生成方法及装置
CN110543297A (zh) 用于生成源码的方法和装置
Wanderley et al. Generating feature model from creative requirements using model driven design
KR20150092880A (ko) 그래픽 사용자 인터페이스 개발의 가변 설정 기반 후설계 방법 및 장치
CN110362792B (zh) 将rn文件转换为小程序文件的方法、装置及转换设备
WO2019068541A1 (en) METHOD FOR SELECTING SOFTWARE FILES
Chen et al. A novel automated construction scheme for efficiently developing cloud manufacturing services
Pytlak et al. Interactive dynamic optimization server–connecting one modelling language with many solvers
Collins Data structures and the Java collections framework
CN104408120A (zh) 源代码的处理方法及装置
Paramonov et al. Tacle: Learning constraints in tabular data
WO2016181526A1 (ja) 制御ロジック図解析装置および制御ロジック図解析方法
KR20170041713A (ko) 복수의 정보원에서 얻는 정보 및 도구를 통일화하는 방법 및 이를 응용한 컴퓨터 프로그램 제품과 장치
CN104239072A (zh) 软件的程序代码的生成方法及装置
CN114238831A (zh) Html代码片段的处理方法、系统、电子设备和存储介质
CN113703638A (zh) 数据管理页面处理方法、装置、电子设备及存储介质
Lin et al. Efficient microcode arrangement and controller synthesis for application specific integrated circuits
AU2018313995B2 (en) Systems and methods for providing globalization features in a service management application interface

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant
PE01 Entry into force of the registration of the contract for pledge of patent right

Denomination of invention: Source code processing method and device

Effective date of registration: 20190531

Granted publication date: 20190412

Pledgee: Shenzhen Black Horse World Investment Consulting Co.,Ltd.

Pledgor: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Registration number: 2019990000503

PE01 Entry into force of the registration of the contract for pledge of patent right
CP02 Change in the address of a patent holder

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Patentee after: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

Address before: 100086 Beijing city Haidian District Shuangyushu Area No. 76 Zhichun Road cuigongfandian 8 layer A

Patentee before: BEIJING GRIDSUM TECHNOLOGY Co.,Ltd.

CP02 Change in the address of a patent holder
PP01 Preservation of patent right

Effective date of registration: 20240604

Granted publication date: 20190412