国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

描述VB.NET fnSimpleObjectToXML

開發 后端
這里介紹VB.NET fnSimpleObjectToXML,包括介紹在編寫fnArrayToXML過程時出現了一點小問題,由于調用方不可能要求數組的元素逐個傳入。

學習VB.NET時,你可能會遇到VB.NET fnSimpleObjectToXML問題,這里將介紹VB.NET fnSimpleObjectToXML問題的解決方法,在這里拿出來和大家分享一下。

1、我將這個半自動初始化文件類命名為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功能相對應,互為反函數。

2、程序的實現是非常簡單的,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功能適好是取數組元素個數及指定下標的元素值,所以問題立刻迎刃而解。

  1. '利用反射調用數組的getLenght方法取得數組的大小,這里僅支持一維數組,但對于初始化文件已足夠用了  
  2. tobjXMLAttribute = ni_objXMLDocument.CreateAttribute("ArrayLength")  
  3. tobjMethodInfo = tobjArrayType.GetMethod("GetLength")  
  4. ReDim taobjParameter(0)  
  5. taobjParameter(0) = 0  
  6. ti32Tempa = tobjMethodInfo.Invoke(ni_objArray, taobjParameter)  
  7. tobjXMLAttribute.Value = ti32Tempa 
  8. tobjXMLElement.SetAttributeNode(tobjXMLAttribute)  
  9. tobjXMLAttribute = Nothing 
  10.  
  11. '加入數組的內的元素  
  12. For ti32LoopA = 0 To ti32Tempa - 1  
  13.  
  14. '利用反射取得數組的GetValue方法取得實際元素的值  
  15. ReDim taobjParameterType(0)  
  16. taobjParameterType(0) = GetType(Integer)  
  17. tobjMethodInfo = tobjArrayType.GetMethod("GetValue", taobjParameterType)  
  18. ReDim taobjParameter(0)  
  19. taobjParameter(0) = ti32LoopA  
  20. tobjTempa = tobjMethodInfo.Invoke(ni_objArray, taobjParameter)  
  21. ' 將數組元素放入對xml對象中  
  22. tobjXMLElementA = fnSimpleObjectToXML(tobjTempa, ni_objXMLDocument, ti32LoopA)  
  23. tobjXMLElement.AppendChild(tobjXMLElementA)  
  24. Next ti32LoopA 

從XML轉為net對象的過程基本都沒有什么技術難度。我只是根據xml中包含的ObjectType信息簡單獲得簡單對象的類型,然后直接調用net強制轉換類的功能將XML文件中指定的對象儲存的數值重新恢復為原來的net對象。代碼如下:

  1. '根據XMLelement結構元素中指定的對象類型,建立對象  
  2. tobjType = Type.GetType(tobjXmlSimpleObjectElement.GetAttribute("ObjectType"))  
  3. tobjReturnSimpleObject = Convert.ChangeType(tobjXmlSimpleObjectElement.InnerText, tobjType, Nothing) 

對于Xml轉為數組用數組、轉為類對象的方法可以參閱本文所附源代碼。

【編輯推薦】

  1. 描述VB.NET EIF體系
  2. 簡單講述VB.NET多重繼承
  3. 淺談VB.NET語言與.NET開發語言關系
  4. 講解VB.NET語言學習經驗
  5. 淺析VB.NET語言到底帶來了什么
責任編輯:佚名 來源: IT168
相關推薦

2009-10-20 14:09:05

VB.NET反射功能

2009-10-27 12:06:01

VB.NET IDis

2009-10-19 14:22:13

VB.NET EIF體

2009-10-30 11:20:54

VB.NET Proc

2009-10-13 09:33:49

VB.NET Web

2009-10-15 09:02:19

VB.NET申明數組

2009-10-14 13:56:05

VB.NET數據窗體

2009-10-28 10:09:07

VB.NET Dire

2009-10-12 12:54:58

VB.NET聲明API

2009-10-15 15:04:42

VB.NET PadL

2009-10-14 09:15:15

2009-10-13 17:16:40

VB.NET Web服

2009-10-10 16:15:49

VB.NET開發多線程

2009-10-14 15:44:04

VB.NET字節數組

2009-10-26 10:08:44

VB.NET工程轉換成

2010-01-14 10:52:13

VB.NET水晶報表

2009-10-29 14:02:24

VB和VB.NET比較

2009-10-14 12:51:41

VB.NET Data

2011-06-17 11:05:22

VB.NET

2009-06-24 15:45:32

VB.NET
點贊
收藏

51CTO技術棧公眾號

136国产福利精品导航| 亚洲一区二区福利| 日本一区网站| 欧美日韩伦理| 精品国产一区二区在线| 免费在线观看黄色网| 久久这里只有精品6| 欧美一区二区三区精美影视| 一区二区三区韩国免费中文网站| 亚洲精品网站在线播放gif| 欧美在线一卡| 国产精品女主播在线观看| 免费看污污视频| 欧美亚洲自偷自偷| 亚洲自拍小视频免费观看| 一区二区三区四区视频免费观看 | 日本高清不卡在线观看| 精品视频无码一区二区三区| 视频一区国产视频| 国产精品区一区二区三含羞草| 欧美精品momsxxx| 欧美日韩成人在线观看| 91伊人久久| 亚洲美女激情视频| av伦理在线| 亚洲大胆人体av| 国产丝袜精品丝袜| 3d成人h动漫网站入口| 在线激情小视频| 欧美专区日韩专区| 你懂的在线播放| 日本精品一区二区三区四区的功能| 性色av一区二区| 亚洲成精国产精品女| а√最新版地址在线天堂| 亚洲综合色区另类av| 超碰在线免费| 粉嫩av一区二区三区免费野| 黄动漫在线看| 欧美性色视频在线| 999国产在线视频| 欧美一区二区三区在线| 超碰免费公开在线| 精品欧美乱码久久久久久1区2区 | 成人免费看的视频| 久久国产精品免费观看| 国产福利一区二区三区| 成年在线观看视频| 成人va在线观看| 日韩av手机版| 亚洲香蕉伊在人在线观| 精品无人乱码| 欧美成人aa大片| 欧美不卡高清一区二区三区| 久久成年人视频| 精品一区亚洲| 99在线观看视频| 日韩av在线发布| 欧美图片激情小说| 久久久精品国产99久久精品芒果| 亚洲欧洲日本精品| 精品久久久香蕉免费精品视频| av黄色在线观看| 亚洲二区在线播放视频| 国产精品原创视频| 97在线视频一区| 欧美fxxxxxx另类| 视频在线精品一区| 久久亚洲精华国产精华液 | 亚洲一区资源| 久久综合国产精品台湾中文娱乐网| 在线观看视频一区二区三区| 国产精品久久久久久一区二区| 影音先锋亚洲一区| 国产成人精品免费看在线播放| 99精品在线观看视频| 丁香视频免费观看| 欧美日韩国产免费一区二区| 国产伦理精品| 国产成人精彩在线视频九色| 99精品视频网| 久久国产成人精品国产成人亚洲| 一区二区三区 在线观看视频| 老司机在线视频二区| 日韩在线视频一区| 国产高清一区| 99久re热视频精品98| 一区二区三区四区在线免费观看| 含羞草www国产在线视频| 美日韩精品视频免费看| 欧美另类亚洲| 国产av麻豆mag剧集| 日韩欧美国产网站| 91九色综合| 亚洲专区国产精品| 成人动漫一区二区三区| 色视频在线观看| 日韩资源在线观看| 亚洲调教视频在线观看| 日韩视频第二页| 欧美高清视频一二三区 | 一区二区三欧美| 91麻豆国产自产在线观看亚洲| 亚洲午夜精品久久| 亚洲国产综合色| 成人影院入口| 亚洲wwwav| 亚洲国产岛国毛片在线| 老司机深夜福利在线观看| 国产日韩精品视频| 97精品电影院| а√资源新版在线天堂| 国产精品专区h在线观看| aaa欧美日韩| 精品一性一色一乱农村| 成人h视频在线观看播放| 久久久久久综合| 98色花堂精品视频在线观看| 91九色在线观看| 1000精品久久久久久久久| 日韩国产网站| 日韩免费av电影| 色噜噜偷拍精品综合在线| 奇米影视777在线欧美电影观看| 玖玖精品在线视频| 欧美一级片免费看| 亚洲欧美综合久久久| 成人观看视频| 欧美成人午夜影院| 国模一区二区三区白浆| 国产一二三区在线观看| 国产日韩欧美另类| 亚洲免费观看在线视频| 欧美久久亚洲| 又粗又黑又大的吊av| 亚洲精品一区中文| 久久男女视频| 成人p站proumb入口| 国产精品一区二区性色av| 国产精品夫妻自拍| 91国产一区| 国产一线二线三线女| 日韩电影免费观看在线观看| 国产日韩亚洲欧美精品| 国产三级在线看| 亚洲自拍偷拍在线| 欧美性色xo影院| 欧美午夜在线视频| 国产永久免费高清在线观看视频| 国产精品露脸自拍| 亚洲综合免费观看高清在线观看| 日韩中文字幕无砖| 人妻精品无码一区二区三区 | 国产精品手机在线播放 | 色爱av综合网| 一路向西2在线观看| 欧美成人第一页| 国产亚洲一区字幕| 超碰地址久久| 理论视频在线观看| 全亚洲最色的网站在线观看| 中文字幕一区二区三区在线播放 | 亚洲国产精品91| 猫咪成人官网| 国产99在线|中文| 亚洲国产精品久久人人爱| 国产欧美亚洲精品a| 亚洲一区在线日韩在线深爱| 51成人做爰www免费看网站| 精品视频在线看| 日精品一区二区三区| 暖暖成人免费视频| 99视频在线免费| 国产精品va在线| 欧美日韩在线视频一区二区| 欧美黄在线观看| 日本无删减在线| 久久视频这里有精品| 91av国产在线| 色呦呦国产精品| 日本欧美在线看| 日本精品网站| 国产无遮挡又黄又爽免费网站| 国产日韩在线亚洲字幕中文| 欧美精品在线一区二区| 国产做a爰片久久毛片| 97久久亚洲| 国产综合在线观看| 一本久久a久久精品vr综合 | 成人免费淫片在线费观看| 国产精品91一区| 欧美巨大另类极品videosbest| 三级在线观看一区二区| 懂色aⅴ精品一区二区三区| 91美女在线免费观看| 国产在线欧美日韩| 深夜福利国产精品| 欧美日韩国产精品一区| 国产一区二区三区在线观看免费视频 | 精品一区二区三|