0
我有一個項目使用MEF並允許開發人員添加不同的插件。這些插件中的很多都有類似的方法,並且需要做類似的事情,所以我在另一個名爲PluginBase的項目中創建了一個基類,它們從中繼承。所有插件都構建到相同的目錄中(其中MEF加載其目錄),並且PluginBase dll也構建到該目錄。使用引用相同程序集的多個MEFS插件時引發錯誤
如果我只在該目錄中有1個插件,它工作正常。如果我有多個參考PluginBase,我收到錯誤:
{"Could not load type 'BCDTravel.API.PluginBase.PluginBase' from assembly 'TEST.API.PluginBase, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null'.":"TEST.API.PluginBase.PluginBase"}
這是我收到的唯一消息。
我猜如果我將PluginBase添加到GAC中,它會起作用,但我並不真正瞭解問題所在。這是多次加載程序集的問題嗎?
謝謝!
您不應該多次加載相同的程序集。如果'PluginBase'類屬於一個通用程序集,請將公共聲明放在應用程序的bin文件夾中,然後從那裏將它添加到MEF目錄中。從Plugins文件夾僅加載特定於插件的程序集。 – 2014-09-29 19:49:55
我給了一個鏡頭,讓我知道如果我弄明白了,謝謝 – bsayegh 2014-09-29 20:08:40
正確的答案,但我不能標記爲答案。 – bsayegh 2014-09-30 14:32:59