


下載本文檔
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、C# 程序中 對象所處的上下文環(huán)境起因:近來,我在業(yè)余時間忙于開發(fā)一個 網(wǎng)站后臺自動生成軟件軟件的設(shè)計開發(fā)起因會有另外的文章進(jìn)行介紹;現(xiàn)在是 2011-1-15 4:40 (我已經(jīng)累計有 超過 13個夜晚都是奮戰(zhàn)到這個時候的為了這個軟件);軟件的架構(gòu)思路,參照公司的標(biāo)準(zhǔn)產(chǎn)品 SUF6.1 的架構(gòu)模式;最完美的是,該軟件支持 插件擴(kuò)展任何人相對軟件的擴(kuò)展,都不需要修改源代碼只需要標(biāo)注特性,那么程序就會加載你的 第三方 工具欄,右鍵菜單 等選項(xiàng);問題的起因就在 插件這一塊!我在軟件的主體部分通過接口BaseFile, IPageType 創(chuàng)建了一個 插件中的對象 EditPageType e.as
2、pxListPageType l.aspx右鍵單擊這個 對象節(jié)點(diǎn),“文件屬性”這個數(shù)據(jù)來自 主程序的實(shí)現(xiàn);“配置窗體”這個來自 插件 WebCreate.Forever.dll然后,我將程序序列化保存,然后再 反序列化結(jié)果,這個 節(jié)點(diǎn)的 “配置窗體” 不見了;這個對象是否可以使用這個 右鍵菜單項(xiàng) 有一個 判斷函數(shù)這段代碼是說,如果 WebObject(網(wǎng)站對象) 不為空,且 這個對象是 插件的 EditPageType 類,那么就表示這個對象可以 使用這個 右鍵菜單項(xiàng) ,返回 True(真);查錯:這個右鍵菜單去哪了?為什么不顯示這個菜單?后來查錯原因,代碼行是 我調(diào)試了一哈,但是 obj 明
3、顯就是 EditPageType 的數(shù)據(jù)結(jié)構(gòu),沒理由這個代碼返回在False??!于是我寫下這行代碼,進(jìn)行強(qiáng)行轉(zhuǎn)換!結(jié)果,我遇到了一個以前都沒有遇到的 異常:簡單的說,這異常的 意思是說 : ListPageType 對象 l.aspx 不是 ListPageType;這就好比說 人類 的對象 舒小龍 不是 人類 一樣;不過,這個異常也很清楚:他的意思也很明確 ,這個 ListPageType 和 ListPageType 是不一樣的;我最后仔細(xì)思考,明白了原因:這個對象的創(chuàng)建 是 在 主程序中創(chuàng)建的;而現(xiàn)在,我想在 插件 的方法中 轉(zhuǎn)換 主程序的 對象,這時就出錯了;比方說:每個人都有身份證;
4、舒小龍也有一個 身份證,我們可以說 舒小龍的身份證 是 身份證;但是有一天,舒小龍去了美國 ,這時 舒小龍的身份證 是 身份證 美國就不承認(rèn)這句話是對的了;舒小龍強(qiáng)行轉(zhuǎn)換,硬是要說這個身份證是身份證于是美國的工作人員就報了一個異常:這個 身份證 和 身份證 是不一樣的;問題的癥結(jié)在于 上下文環(huán)境 的不一樣:中國 和 美國;就像上面說的,創(chuàng)建對象是說 主程序的環(huán)境 Default 中創(chuàng)建,但是我想 在 LoadNeither 環(huán)境下使用他一樣!解決方案:我之前的 WebObject 類是 繼承 Iserializable 準(zhǔn)備進(jìn)行手動序列化的,但是后來 我覺得手動序列化很麻煩,包括子類都難以幸免
5、;所以,我又取消了 這計劃;如果,手動序列化 能不能 避免這個問題呢?我沒有嘗試這個,因?yàn)?;昨晚好不容易?手動序列化的 代碼 改成 系統(tǒng)的序列化,我再反一次,我豈不是有?。坏诙€想法:既然問題出在: Default 中創(chuàng)建,就不能在 LoadNeither 中使用;那么,能不能將 創(chuàng)建的過程 也轉(zhuǎn)移到 插件中,就是 LoadNeither 環(huán)境中?不可能,因?yàn)閯?chuàng)建的過程有很多界面在聯(lián)動工作,主程序是最需要數(shù)據(jù)的地方,數(shù)據(jù)的創(chuàng)建如果轉(zhuǎn)移到了 插件中,那么失去這個插件,主程序就會崩潰!且 以后另外的插件 在 主程序中找不到 公共部分,那么豈不是 其他的插件也要 重新編寫 創(chuàng)建數(shù)據(jù)的編碼?那么能不
6、能將 插件 的環(huán)境 弄得 和 主程序 一樣呢?那樣,主程序 和 插件 都能夠共享數(shù)據(jù),不會有 環(huán)境限制;是的,這才是最好的辦法,最簡單,最省力!且依然維護(hù)了軟件最初的架構(gòu)設(shè)計初衷!-話說回來,我的插件 是在 程序的 最開始就執(zhí)行加載的加載參數(shù)在 配置文件中!代碼簡化如下:也就是將 WebCreate.Forever.dll WebCreate.Action.dll 這兩個插件加載到程序中;但是,沒想到,系統(tǒng)加載這兩個插件程序集時,居然 將這兩個放到了 別的環(huán)境下;典型的歧視!如何讓系統(tǒng)加載這兩個程序集時,將其 劃歸到 默認(rèn)環(huán)境下呢?我突然想起了 彬哥(我們項(xiàng)目經(jīng)理)之前的一篇文章可能涉及如何加載程序集;原來 加載程序集的方法有這么多;我試了一下,結(jié)果 正確的做法 正是 第一種:Assembly.Load("WebCreate.Action"); Assembly.Load("WebCreate.Forever"); 不過 加載的是 程序集的 命名空間,而不是程
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 規(guī)范的采血流程
- 安徽省A10聯(lián)盟2024-2025學(xué)年高二下學(xué)期3月階段考試 數(shù)學(xué)試題(人教A版)D卷【含答案】
- 江蘇省江陰初級中學(xué)2024-2025學(xué)年高三下學(xué)期八校聯(lián)考數(shù)學(xué)試題含解析
- 曲靖醫(yī)學(xué)高等??茖W(xué)?!都b箱與多式聯(lián)運(yùn)2》2023-2024學(xué)年第二學(xué)期期末試卷
- 山東省臨沂市臨沭縣一中2025年高三高中數(shù)學(xué)試題競賽模擬(二)數(shù)學(xué)試題含解析
- 錫林郭勒職業(yè)學(xué)院《環(huán)境科學(xué)專業(yè)英語》2023-2024學(xué)年第二學(xué)期期末試卷
- 汪清縣2024-2025學(xué)年三年級數(shù)學(xué)第二學(xué)期期末統(tǒng)考試題含解析
- 山東服裝職業(yè)學(xué)院《數(shù)學(xué)模型建立》2023-2024學(xué)年第一學(xué)期期末試卷
- 江西衛(wèi)生職業(yè)學(xué)院《急救醫(yī)學(xué)》2023-2024學(xué)年第一學(xué)期期末試卷
- 曲阜師范大學(xué)《景觀設(shè)計與規(guī)劃》2023-2024學(xué)年第二學(xué)期期末試卷
- 5G-Advanced 網(wǎng)絡(luò)技術(shù)演進(jìn)白皮書
- 【H公司員工培訓(xùn)的現(xiàn)狀、問題和對策探析(含問卷)13000字(論文)】
- 新疆建設(shè)項(xiàng)目交通影響評價技術(shù)標(biāo)準(zhǔn)
- 債權(quán)轉(zhuǎn)讓項(xiàng)目合同范本
- 安徽省合肥市瑤海區(qū)部分學(xué)校2023-2024學(xué)年英語八下期末統(tǒng)考模擬試題含答案
- 水電站砂石加工系統(tǒng)封閉施工方案
- 三年級下冊《春天的歌》作業(yè)設(shè)計
- 2024輸送機(jī)械檢查與維護(hù)規(guī)范第1部分帶式輸送機(jī)
- 勞務(wù)班組施工合同范本(2024版)
- 個人代持協(xié)議書
- 人音版小學(xué)六年級下冊音樂教案
評論
0/150
提交評論