.NET - Plugin
我之前在 .NET - Load Plugins 寫過如何實做簡單的 plugin interface,最近真正在用的時候才發現問題。
Assembly.Load* 雖然可以把 .dll 檔案動態載入,可是卻找不到任何方法可以 unload.. Assembly 在被載入之後是處於鎖定的狀態,如果這時候把檔案換掉的話,Assembly.Load 便無法再重新載入,會出現 Exception
這樣就沒辦法在後端偷偷換掉 backend 了 -_-
要實做動態的 load, unload 好像是要使用 System.AppDomain 來做(時際上是用 Remoting 的技術),看似簡單,可是我試到現在還沒成功過… 還變成好像 Assembly 被 Cache 起來的情況,怎麼 load, unload 都是用到舊的 Assembly… 天阿
原來好死不死碰到 mono 的老 bug…
http://bugzilla.ximian.com/show_bug.cgi?id=27663
到底解決了沒阿 -_-
kanru
26 Feb 06 at 12:24 am
終於修好了。 跑了幾個 test case 都可以正常。 可以來修 Plugin 架構了,BTW,有另外一個叫做 SpikeNET 的 IRC Bot 跟 Bibot 要做的事還滿像的。
kanru
21 Apr 06 at 8:48 pm