iis服务器助手广告
返回顶部
首页 > 资讯 > 精选 >VB.NET中fnSimpleObjectToXML怎么用
  • 517
分享到

VB.NET中fnSimpleObjectToXML怎么用

2023-06-17 20:06:26 517人浏览 泡泡鱼
摘要

这篇文章主要为大家展示了“VB.NET中fnSimpleObjectToXML怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.net中fnSimpleObjectToXML怎么用”这篇

这篇文章主要为大家展示了“VB.NET中fnSimpleObjectToXML怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.net中fnSimpleObjectToXML怎么用”这篇文章吧。

我将这个半自动初始化文件类命名为clsAPPOption,类内结构及包含过程的功能说明如下:

两个区域#Region "应用程序使用的选项结构定义"、#Region "应用程序选项的变量声明"中的内容是按初始化选项级组织的类及类的实例,每一个类表示程序选项的一个初始化节,必须由最终使用者根据实际选项需要自行手工补充。
◆fnGetAppDirectory:取得应用程序的运行目录
◆sbInitialDefaultAPPOption:设置程序选项的默认初始值(这个过程中的代码需根据实际需要手工修改)。
◆fnSaveAppOption:将类内的程序选项保存到一个指定的文件中. (这个过程中的部分代码需根据实际需要手工修改)
◆fnLoadAppOption:在指定的文件中读取应用程序的选项信息并保存到当前类中(这个过程中的部分代码需根据实际需要手工修改)。
◆fnXMLElementToSimpleObject:将一个XMLElement转为它代表的简单对象,所谓简单对象就是诸如int32\int16之类的基本net对象。
◆fnXMLElementToClassObject:将一个XMLElement转换为它代表的类对象。
◆fnXMLElementToArray:将一个XMLElement转为它代表的数组
◆fnArrayToXML:将一个数组放入XML文件中,目前只支持一维数组:例如dim aString(10) as string
◆fnClassObjectToXML:将一个类对象转换为xml元素的表示形式。
◆VB.NET fnSimpleObjectToXML:将一个简单对象改为XML元素表示
◆注:其中fnXMLElementToXXXX和fnXXXXToXML功能相对应,互为反函数。

程序的实现是非常简单的,fnClassObjectToXML对指定的类进行反射操作,使用类的类型的GetFields方法枚举类内的成员变量信息,然后根据成员变量的类型调用VB.NET fnSimpleObjectToXML或fnArrayToXML,在函数结束的时候,将要转换的类以一个 XMLElement对象的形式返回。

  1. For Each tobjFieldInfo In tobjClassObjectType.GetFields  

  2. If tobjFieldInfo.FieldType.IsArray = False Then '只是一个简单类型,直接取得值  

  3. tobjXMLElement = fnSimpleObjectToXML(tobjFieldInfo.GetValue(ni_objClassObject), _  

  4. ni_objXMLDocument, _  

  5. tobjFieldInfo.Name)  

  6. tobjXMLClassObjectElement.AppendChild(tobjXMLElement)  

  7. Else  

  8. REM 如果是一个数组类型,则进行数组方法的调用以取得值,  

  9. '目前只支持一维数组元素  

  10. tobjXMLElement = fnArrayToXML(tobjFieldInfo.GetValue(ni_objClassObject), 
    ni_objXMLDocument, tobjFieldInfo.Name, tobjFieldInfo.FieldType.FullName)  

  11. '将数组对象放入结构的xml对象中  

  12. tobjXMLClassObjectElement.AppendChild(tobjXMLElement)  

  13. End If 

VB.NET fnSimpleObjectToXML的实现也很简单,根据前文确立的简单对象的定义,VB.NET fnSimpleObjectToXML过程所要生成的xml对象的几个要素可以这样获取:ObjectName在f nClassObjectToXML作反射后已经获取,并以参数传递的方式在调用VB.NET fnSimpleObjectToXML时提供了。 ObjectType数据类型则可以利用ni_objsimpleObject.GetType.FullName方法取得, ni_objSimpleObject就是在函数调用时传入的简单对象的值。

在编写fnArrayToXML过程时出现了一点小问题,由于调用方不可能要求数组的元素逐个传入,所以对数组的元素个数以及元素的值无法在函数中以对象反射的方式直接获取。幸运的是,在Net反射操作中,可以利用Invoke方法来调用原始对象内的函数或属性过程,而数组的共享方法GetLength、GetValue功能适好是取数组元素个数及指定下标的元素值,所以问题立刻迎刃而解。

'利用反射调用数组的getLenght方法取得数组的大小,这里仅支持一维数组,但对于初始化文件已足够用了  tobjXMLAttribute = ni_objXMLDocument.CreateAttribute("ArrayLength")  tobjMethodInfo = tobjarrayType.GetMethod("GetLength")  ReDim taobjParameter(0)  taobjParameter(0) = 0  ti32Tempa = tobjMethodInfo.Invoke(ni_objArray, taobjParameter)  tobjXMLAttribute.Value = ti32Tempa tobjXMLElement.SetAttributenode(tobjXMLAttribute)  tobjXMLAttribute = Nothing  '加入数组的内的元素  For ti32LoopA = 0 To ti32Tempa - 1   '利用反射取得数组的GetValue方法取得实际元素的值  ReDim taobjParameterType(0)  taobjParameterType(0) = GetType(Integer)  tobjMethodInfo = tobjArrayType.GetMethod("GetValue", taobjParameterType)  ReDim taobjParameter(0)  taobjParameter(0) = ti32LoopA  tobjTempa = tobjMethodInfo.Invoke(ni_objArray, taobjParameter)  ' 将数组元素放入对xml对象中  tobjXMLElementA = fnSimpleObjectToXML(tobjTempa, ni_objXMLDocument, ti32LoopA)  tobjXMLElement.AppendChild(tobjXMLElementA)  Next ti32LoopA

从XML转为net对象的过程基本都没有什么技术难度。我只是根据xml中包含的ObjectType信息简单获得简单对象的类型,然后直接调用net强制转换类的功能将XML文件中指定的对象储存的数值重新恢复为原来的net对象。代码如下:

'根据XMLelement结构元素中指定的对象类型,建立对象  tobjType = Type.GetType(tobjXmlSimpleObjectElement.GetAttribute("ObjectType"))  tobjReturnSimpleObject = Convert.ChangeType(tobjXmlSimpleObjectElement.InnerText, tobjType, Nothing)

以上是“VB.NET中fnSimpleObjectToXML怎么用”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网精选频道!

--结束END--

本文标题: VB.NET中fnSimpleObjectToXML怎么用

本文链接: https://www.lsjlt.com/news/293063.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • VB.NET中fnSimpleObjectToXML怎么用
    这篇文章主要为大家展示了“VB.NET中fnSimpleObjectToXML怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET中fnSimpleObjectToXML怎么用”这篇...
    99+
    2023-06-17
  • VB.NET中StructLayout怎么用
    这篇文章主要为大家展示了“VB.NET中StructLayout怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET中StructLayout怎么用”这篇文章吧。VB.NET编程语言...
    99+
    2023-06-17
  • VB.NET中Hashtable怎么用
    这篇文章给大家分享的是有关VB.NET中Hashtable怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。VB.NET Hashtable用法相关概念详解1、VB.Net 2003下,在窗体设计起代码中加入:...
    99+
    2023-06-17
  • VB.NET中Type怎么用
    这篇文章主要介绍了VB.NET中Type怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。关于VB.NET的数据类型想必大家都知道了,但是对与初学者来说数据类型还是一个难点...
    99+
    2023-06-17
  • VB.NET中CASE语句怎么用
    小编给大家分享一下VB.NET中CASE语句怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!如果要将同一个表达式与不同的值进行比较,则可以用 Select...Case 语句来替换 If...Then...Else 语...
    99+
    2023-06-17
  • VB.NET中AddHandler语句怎么用
    这篇文章给大家分享的是有关VB.NET中AddHandler语句怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。在向大家详细介绍VB.NET AddHandler语句之前,首先让大家了解下代理是一个存储方法索...
    99+
    2023-06-17
  • VB.NET中OOP语法怎么用
    小编给大家分享一下VB.NET中OOP语法怎么用,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!VB.NET采纳了包括Java在内的许多其它面相对象编程语言的功能和...
    99+
    2023-06-17
  • VB.NET中怎么调用Web Service
    本篇文章为大家展示了VB.NET中怎么调用Web Service,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。在VB.NET调用Web Service提供的服务当Web Service已经处于对外提...
    99+
    2023-06-17
  • VB.NET中MonthCalendar控件怎么用
    这篇文章主要为大家展示了“VB.NET中MonthCalendar控件怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET中MonthCalendar控件怎么用”这篇文章吧。VB.N...
    99+
    2023-06-17
  • VB.NET中Implements语句怎么用
    这篇文章将为大家详细讲解有关VB.NET中Implements语句怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。VB.NET采用的实现接口的语法是VB5发明的Implements,这个实现接口的语法...
    99+
    2023-06-17
  • VB.NET中Imports语句怎么用
    这篇文章将为大家详细讲解有关VB.NET中Imports语句怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。对于初学者来说,可能对于VB.NET Imports语句的了解还不是太深刻。大家可以通过这篇...
    99+
    2023-06-17
  • VB.NET中RmDir语句怎么用
    这篇文章将为大家详细讲解有关VB.NET中RmDir语句怎么用,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。VB.NET RmDir语句功能是删除一个存在的而且为空的目录或文件夹,它的语法结构如下所示:R...
    99+
    2023-06-17
  • VB.NET中ListView控件怎么用
    这篇文章主要介绍了VB.NET中ListView控件怎么用,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。VB.NET ListView控件在程序开发过程中的使用是非常广泛的。...
    99+
    2023-06-17
  • VB.NET WithEvents怎么用
    小编给大家分享一下VB.NET WithEvents怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!VB.NET经过长时间的发展,很多用户都很了解VB.NET WithEvents了,这里我发表一下个人理解,和大家讨论...
    99+
    2023-06-17
  • VB.NET Excel怎么用
    这篇文章给大家分享的是有关VB.NET Excel怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。VB.NET Excel说起报表设计应用程序,无意微软的Excel是一支独秀,VB.NET Excel就是用来...
    99+
    2023-06-17
  • VB.NET中怎么调用对话框
    本篇文章为大家展示了VB.NET中怎么调用对话框,内容简明扼要并且容易理解,绝对能使你眼前一亮,通过这篇文章的详细介绍希望你能有所收获。VB.NET对话框调用概述:我们都知道在.NET中调用一个打开文件的对话框很容易,定义一个OpenFil...
    99+
    2023-06-17
  • VB.NET中For/Next循环怎么用
    这篇文章给大家分享的是有关VB.NET中For/Next循环怎么用的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。VB.NET开发平台的应用,在编程领域中占据着非常大的优势。开发人员可以使用这款语言实现许多功能需求...
    99+
    2023-06-17
  • VB.NET中Socket编程类怎么用
    小编给大家分享一下VB.NET中Socket编程类怎么用,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!一直以来很想学习Socket编程方面的应用,比如怎样通过Socket编程实现单片机与PC的TCP连接通信。在单片机嵌入网...
    99+
    2023-06-17
  • VB.NET中怎么调用jar文件
    这篇文章给大家介绍VB.NET中怎么调用jar文件,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。示例代码:import com.founder.exchange.*;  CyExchang...
    99+
    2023-06-17
  • VB.NET中For/Each技术怎么用
    这篇文章主要为大家展示了“VB.NET中For/Each技术怎么用”,内容简而易懂,条理清晰,希望能够帮助大家解决疑惑,下面让小编带领大家一起研究并学习一下“VB.NET中For/Each技术怎么用”这篇文章吧。我们大多数开发人员在进行VB...
    99+
    2023-06-17
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作