2014-02-27 21 views
0

Unity(unity 3.xx和Unity.WebAPI 5.1)有一個小問題,所有的工作都可以正常使用我的配置文件,但我需要將界面dll和具體的dll位置放在單獨的文件夾中。Unity彙編查找

接口DLL將位於應用程序的bin文件夾中,但混凝土的位置可能在服務器上的任何位置。因此,我需要爲這些混凝土的位置指定一個絕對路徑(或多個路徑)。由於其他原因,他們無法加入GAC。

這是可能的與團結,還是我讓我的老闆讓我開發這是一個基於服務的解決方案。

感謝

回答

0

我用的解決方案如下:

添加自定義解決事件處理程序AppDomains.AsselyResolve

的處理函數中構造了一個沒有使用ResolveEventArgs加載的程序集的路徑和配置文件中的絕對路徑名。使用Assembly.LoadFrom加載它。這樣我可以將組件放置在機器上的任何位置。

這樣我就可以讓Unity做它需要做的事情,並且它無法在解決方案bin文件夾中找到程序集時讓它拋出異常並處理它。

它的工作原理和解決了我的問題。

0

我會建議你使用統一3.第一個參數爲新的擴展方法這是創建一個枚舉類型的registration by convention功能。

Unity 3還爲查找類型添加了一個靜態幫助類AllClasses。該助手上的FromAssemblies方法對您的情況特別有用。

因此,您仍然需要解決在磁盤上查找實際程序集並加載它們的問題,但是註冊類型非常簡單。