【发布时间】:2013-11-30 14:08:34
【问题描述】:
我正在尝试在我的 MVC 应用程序中实现一个插件应用程序,我已经设法整理出视图引擎并使用 MEf 从程序集中将一个新控制器注入到应用程序中。
但是,我尝试加载的程序集也有一个强类型模块,我想将它注入到插件应用程序中,我正在加载程序集,如下所示:
我可以知道程序集已加载到当前的 appdomain 中,但我仍然收到以下错误:
编译错误 说明:在编译服务此请求所需的资源期间发生错误。请查看以下特定错误详细信息并适当修改您的源代码。
编译器错误消息:CS0246:类型或命名空间名称“cars” 找不到(您是否缺少 using 指令或程序集 参考?)
如果您能给我一些提示,我将不胜感激。
非常感谢。
【问题讨论】:
-
在什么情况下您会收到提到的错误?
-
当我使用已从我在应用程序启动时加载的同一个程序集中加载 MEF 的控制器调用视图时出现此错误。基本上这个程序集包含控制器和强类型模块。我用 MEF 和 MefControllerFactory 加载控制器。它工作正常,因此控制器已被 MVC 应用程序识别。但它找不到强类型程序集。希望它有意义。谢谢
-
您确定路径正确吗?没有驱动器标识符的路径被视为相对路径,因此相对路径可能不是您期望的位置。
-
感谢 cmets,是的,路径是最新的,因为我可以看到程序集已加载到应用程序域中。只是提到程序集位于 bin 文件夹之外。
-
如果您动态加载类型,则不需要“使用”命名空间。您可以通过使用其类型对象来创建引用,然后将其转换为它实现/继承的东西来控制类型。为了使编写插件更容易,最好提供一个库/API,其中包含类和接口,供任何插件用于与您的程序进行通信。
标签: c# asp.net-mvc mef strong-typing strongly-typed-view