2013-07-21 30 views
2

我有一個MVC 4項目,我從動態加載的程序集加載視圖。這工作正常,只要我不使用強類型視圖,因爲在這種情況下,我得到了「找不到類型或名稱空間」異常。CurrentDomain.AssemblyResolve沒有從剃刀視圖中輸入

然後我試着給我的Application_Start添加一個AppDomain.CurrentDomain.AssemblyResolve += CurrentDomain_AssemblyResolve;,但這個事件永遠不會被解決由剃刀視圖引擎搜索到的程序集。
資源也存在同樣的問題,但它只是使用基礎文化,至少不會崩潰。

我知道我的事件解決了程序集很好,因爲當我在我的代碼中使用相同的類時,事件被擊中,我可以使用類/資源。

有誰知道如何解決在剃刀視圖中使用的程序集?

現在我通過複製組件到/bin文件夾,這基本上是工作的,但是從beeing just a ugly hack擱置產生一些其他問題使用dirty hack。我也試過AppendPrivatePath,這也沒有幫助剃刀的意見。

回答

1

我發現在http://shazwazza.com/post/Developing-a-plugin-framework-in-ASPNET-with-medium-trust解決方案:

  • 添加到Web.config的私人路徑
  • 添加PreApplicationStartMethod,做該方法如下:
  • 拷貝所有插件的DLL文件夾鏈接爲
  • 以上的私人路徑
  • 通過Assembly.Load(path)加載程序集並將它們通過BuildManager.AddReferencedAssembly(a);加入到BuildManager中

現在剃鬚刀引擎能夠從這個組件中加載類型。