VB中運用反射原理優(yōu)化程序代碼

字號:

在這個項目里我負責的部分是讀取某子系統(tǒng)從數(shù)據(jù)庫導出來的兩個XML(不妨假設為A.XML和B.XML)文件并根據(jù)文件內(nèi)容完成本部分的業(yè)務工作流程。文件是以共享方式放在服務器上,我只需要獲得一個Session訪問即可,因為要求是實時讀寫文件,所以否定了下載到本地進行讀寫的方法,而為了保證程序生命力和數(shù)據(jù)的完整性,我決定將文件信息一次性讀入程序存儲空間,并在業(yè)務流程中設定當完成某個特定的步驟后回寫一遍AB兩文件,其中A文件節(jié)點可能有增刪B文件只是更新某個標志。
    一開始設計具體類的時候很容易想到構(gòu)造和文件結(jié)構(gòu)對應的類,使用龐大的DOM對象?哦,我可不需要那么多累贅?,F(xiàn)在我把對應AB兩文件的類分別寫了個大概出來,很簡單如下:
    Class clsA/B
    Property Name1 as string
    ...
    End Property
    Property Name2 as string
    ...
    End Property
    ......
    ......
    ......
    End Class
    A,B各需要要一個集合類管理,分別命名為clscolA,clscolB,大概如下:
    Public Class clscolA/B
    Inherits System.Collections.CollectionBase
    Public Function GenerateAson() As clsA/clsB
    'New并返回一個 clsA or clsB
    '初始化屬性的工作可以在這里進行
    End Function
    Public Sub AddSon(ByVal objSon As clsA/clsB)
    '增加一條新紀錄
    InnerList.Add(objSon)
    End Sub
    Public Sub Sort()
    '根據(jù)某設定的屬性對集合進行排序
    InnerList.Sort(New clsSortByName)
    End Sub
    '默認Item屬性以及更多Method從略
    End Class
    好了,現(xiàn)在程序數(shù)據(jù)的基本框架搭好了,這無疑是十分中庸地解決辦法,當然也是十分有效的,本文的主題并不是特別愿意刪減這些成熟的代碼(當然也僅僅是暫且不動而已)。軀殼已有,剩下的工作就是從文件讀取并填充數(shù)據(jù),如果你還沒有接觸過反射或者僅僅限于書本上那點例子,這對你來說可能是一個簡單而又枯燥的過程,你于是乎也條件反射似地寫起來 .