2008-12-12 133 views
0

我有一個應用程序使用許多不同的.NET託管DLL作爲對象(每個DLL實現一個通用接口)。每個DLL在文件名中也有一個版本號。替代DLL作爲對象(動態替換對象)

假設我創建了對象「Shape〜01.dll」。應用程序將使用該DLL,但在應用程序運行時無法替換。所以,如果我想「升級」形狀DLL,我必須創建「Shape〜02.dll」,並且應用程序必須動態搜索並加載最新的DLL,每次創建形狀和/或用戶必須重新啓動應用。更糟糕的是,每個DLL都依賴於主.exe,因此必須使用主.exe重建。

是否有一個更簡單的方法來動態「替換」對象?

回答

0

嗯,這不是最好的解決方案(仍在考慮它),但是你可以卸載dll文件,這將允許它們被替換。這可能是一個快速解決方案,直到你想出一個更好的主意。

0

你沒有提到你想要完成的語言/平臺,所以我將回答.NET Framework。

如果您想要這樣做艱難的方式來看看影子組件,這是ASP.NET使用的方法,雖然它使用的文件保持站點可更新。

爲了更簡單的方法來看看新的System.Addin名稱空間,它使用陰影集合下的陰影集合,並應該做你想做的。

-1

創建對象時,不要輪詢,爲什麼不在文件系統更改時請求系統通知?

.NET中的類爲System.IO.FileSystemWatcher

對於本機代碼,有幾種方法可以查看文件夾,但IANAND(我不是本地開發人員;)。

雖然說過這些事情,但您可能想重新考慮一下您需要頻繁更換對象的原因,因爲它可能需要很多工作才能使其工作。

你使用了動態標籤,所以也許你應該嘗試一種動態語言? :)