明輝手游網中心:是一個免費提供流行視頻軟件教程、在線學習分享的學習平臺!

XCodeFactory 強化靜態(tài)檢查!

[摘要]如果眾多在運行時的錯誤/異常能在編譯時就檢查出來,將會大大減少程序中潛伏的危險。這是我們寫程序時常常要注意的問題。 通過DataEntrance來使用XCodeFactory很方便,如為獲取某ID為200308160033的學生的姓名,通常這樣做:string name = Dat...
          如果眾多在運行時的錯誤/異常能在編譯時就檢查出來,將會大大減少程序中潛伏的危險。這是我們寫程序時常常要注意的問題。

        通過DataEntrance來使用XCodeFactory很方便,如為獲取某ID為200308160033的學生的姓名,通常這樣做:
string name = DataEntrance.GetFieldValue(typeof(Student) ,"200308160033" ,"Name").ToString() ;


       GetFieldValue的第三個參數是字段的名稱,如果以后因為業(yè)務的需要,該字段被改名或被刪除了,則上面的代碼仍然會通過編譯,只有在運行拋出異常時,才會發(fā)現(xiàn)此錯誤。這給程序留下了太多潛伏的危險,因為我們的業(yè)務經常改變,而我們的數據庫表中的字段也經常發(fā)生變化。
        我希望在編譯的時候就能發(fā)現(xiàn)字段被刪除或修改而不能通過編譯,怎么做了?我是這樣解決的,在生成數據對象類的時候,為每個字段生成一個對應的const string字段,該字段的值就是對應字段的名字。如:
public const string _Name = "Name" ;

       GetFieldValue的第三個參數是字段的名稱,如果以后因為業(yè)務的需要,該字段被改名或被刪除了,則上面的代碼仍然會通過編譯,只有在運行拋出異常時,才會發(fā)現(xiàn)此錯誤。這給程序留下了太多潛伏的危險,因為我們的業(yè)務經常改變,而我們的數據庫表中的字段也經常發(fā)生變化。
        我希望在編譯的時候就能發(fā)現(xiàn)字段被刪除或修改而不能通過編譯,怎么做了?我是這樣解決的,在生成數據對象類的時候,為每個字段生成一個對應的const string字段,該字段的值就是對應字段的名字。如:
public const string _Name = "Name" ;


這樣上面的調用可改成:
string name = DataEntrance.GetFieldValue(typeof(Student) ,"200308160033" ,Student._Name).ToString() ;

如此一來,如果Name字段被刪除或者被修改,那么編譯就能發(fā)現(xiàn)這個錯誤。還有更好的解決方案嗎?歡迎你和我討論。