2013-07-21 31 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中

现在剃须刀引擎能够从这个组件中加载类型。