描述VB.NET反射功能
创始人
2024-06-09 05:10:18
0

VB.NET还是比较常用的,于是我研究了一下VB.NET反射功能,在这里拿出来和大家分享一下,希望对大家有用。我将利用VB.NET反射功能,构建一个自动完成初始化文件的保存/读写功能的类。在这个类中,只要程序作者在类内部按程序选项的名称定义好类的内部成员变量(由于这个步骤仍然需要程序员进行类内的手工编码,所以称这个类为半自动初始化类),这个类就自动将程序选项从初始化文件中保存/读取的工作,程序员不必再进行繁琐的读写文件部分的编码。而且,这个类的构建还可以有一个好处:由于应用程序的选项都以成员变量的形式保存在类的内部,程序员可以利用 VS提供的自动列出变量成员的功能查询初始化文件的选项。例如这样写 string myAPPname= tobjAPPOption.General.APPName。据我所知,记住大量的程序选项的确切字符也不是什么好玩的事哦8-)

VB.NET反射功能

初始化文件内容的需求。我们首先分析观察一个标准的windows初始化文件win.ini内容:

  1. [windows]  
  2. load=  
  3. run=  
  4. NullPort=None 
  5. device=HP LaserJet 6L PCL,PCL5EMS3,\\E***18B631240425\HPLaserJ  
  6. [Desktop]  
  7. Wallpaper=(无)  
  8. TileWallpaper=1 
  9. WallpaperStyle=0 

该初始化文件的内容用方括号括住的部分我们称为初始化文件的节,每一节下都组织了一系列与节有相应功能的程序选项。如desktop节下就含有桌面墙纸(Wallpaper)/桌面墙纸铺设(WallpaperStyle)的设置。在初始化文件中程序的选项大都可以用字符串/数字这些简单的数据类型进行保存。

根据这一需求,考虑到目前在VB.NET中使用xml文件非常方便,而且使用xml格式除可实现常规windows初始化文件的功能外,还可以多出树形结构组织的优势,所以本文设计的初始化文件确定采用xml文件格式。并作以下格式的XML文件的元素定义:

  1. 'Net对象以XML元素保存使用的格式定义  
  2. 'Net对象的定义  
  3. ' ObjectName=对象名称 ObjectType(数据类型)=数据类型 > 数据内容 数据类型> 
  4.  
  5. '数组的定义 目前本类中实现的数组只支持string的一维数组  
  6. ' ObjectName=对象名称 ObjectType=数据类型 Length=数组大小> 元素定义 
  7. '如果数组数组为nothing则格式如下  
  8. ' ObjectName=对象名称 ObjectType=数据类型 Length=0>nothing 
  9.  
  10. '简单对象的定义'int32、String等  
  11. ' ObjectName=对象名称 ObjectType(数据类型)=数据类型 > 数据内容 数据类型> 
  12. '当SimpleObject代表数组内的元素时,objectname代表数组的维数  
  13.  
  14. 'ObjectName 、ObjectType、 Lenght 属性的使用举例如下  
  15. '例如Redim mai32Test(7) As String  
  16. 'ObjectName取值为mai32Test,ObjectType取值为string[],Length 值为8 

在VB.NET反射功能中,可以枚举特定类型对象所包含的成员变量的类型及储存值,这个功能经常被一些普通程序员忽略,认为用途并不大。但在本文中,这一功能将成为构建半自动化初始化对象的核心,我们正需要这种功能将写在初始化类中的变量类型和值自动向初始化文件保存或读取。

【编辑推荐】

  1. 描述VB.NET EIF体系
  2. 简单讲述VB.NET多重继承
  3. 浅谈VB.NET语言与.NET开发语言关系
  4. 讲解VB.NET语言学习经验
  5. 浅析VB.NET语言到底带来了什么

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
Windows恶意软件20年“... 在Windows的早期年代,病毒游走于系统之间,偶尔删除文件(但被删除的文件几乎都是可恢复的),并弹...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
着眼MAC地址,解救无法享受D... 在安装了DHCP服务器的局域网环境中,每一台工作站在上网之前,都要先从DHCP服务器那里享受到地址动...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...