【问题标题】:MEF with MVC 5, mixing C# and VB.NETMEF 与 MVC 5,混合 C# 和 VB.NET
【发布时间】:2014-02-04 01:36:46
【问题描述】:

我有一个 VB.NET 解决方案,它使用 MVC 5 和 MEF 为我提供了一个可插入的 Web 项目。

它有一个“主机”项目,使用 MEF 动态运行和加载所有 DLL,然后我加载控制器,一切正常。我添加一个新项目,添加插件注册并使用 MEF 导出控制器。 Bam,适合我的框架的独立项目。

但是,我现在想添加一个 C# 项目。我已将 cshtml 内容添加到自定义 ViewEngine 中,并将视图/dll 复制到主机的插件目录,但是,在渲染视图时,出现此错误:

编译器错误消息:CS0234:命名空间“MVCMEFPluggable”中不存在类型或命名空间名称“CSharpTest”(您是否缺少程序集引用?)

以及第 28 行的错误:

使用 MVCMEFPluggable.CSharpTest;

这将转到在 ASP.NET 临时文件文件夹中创建的临时文件。当涉及到 VB.NET 和 C# 时,我记得一些关于命名空间的差异,但我不知道如何才能使视图正确呈现。

有什么见解吗?

【问题讨论】:

  • 只是补充一点,通过调试器运行,控制器被拾取并很好地呈现,只是当我收到错误时它返回视图,所以我怀疑这是非常严重的事情:)
  • 你能给我们看一些代码吗?如果你想要一些:)
  • 它非常复杂,所以发布代码真的很疯狂。最后,它在控制器的返回视图行上出错。正如我所提到的,一切都得到了正确的处理,它只是渲染了造成问题的视图。在临时文件中有一个“使用”行,如所述,它导致了错误。不知道为什么,我怀疑这与命名空间有关,但我需要知道为什么,这样我才能真正找到解决方案

标签: c# vb.net mef asp.net-mvc-5


【解决方案1】:

在 web.config 文件中添加了“MVCMEFPluggable.CSharpTest”程序集作为参考,删除该行允许 cshtml 在 vb.net 环境中成功编译和运行:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-12-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-03
    相关资源
    最近更新 更多