繁体   English   中英

Visual Studio中的智能感知错误

[英]Intellisense errors in Visual Studio

我已经做了一个模块化的应用程序,每个模块都是一个单独的项目,它们的外观与MVC领域相似。

我实现了一个自定义的WebViewPage但是即使将指针从web.config移回默认值之后,智能感知仍然无法正常工作。

在我的剃刀视图的第一行:

@model IEnumerable<Module2.Models.TestModel>

我得到警告:

xxx \\ Module2 \\ Views \\ Shared \\ TestModelTable.cshtml:ASP.NET运行时错误:在类型WebActivator.ActivationManager上运行的应用程序启动前初始化方法引发异常,并显示以下错误消息:调用的目标已引发异常.. xxx \\ Module2 \\ Views \\ Shared \\ TestModelTable.cshtml

错误:

名称“模型”在当前上下文xxx \\ Module2 \\ Views \\ Shared \\ TestModelTable.cshtml中不存在

然后,每次我尝试引用模型时,都会出现一个错误:

无法从用法中推断出方法'System.Web.Mvc.Html.DisplayExtensions.DisplayFor(System.Web.Mvc.HtmlHelper,System.Linq.Expressions.Expression>)'的类型参数。 尝试显式指定类型参数。 xxx \\ Module2 \\ Views \\ Shared \\ TestModelTable.cshtml 26 14 Module2

另外,如果我将ViewBag.Title添加到视图中, ViewBag.Title出现此错误:

找不到编译动态表达式所需的一种或多种类型。 您是否缺少参考? xxx \\ Module2 \\ Views \\ Shared \\ TestModelTable.cshtml

我认为Web配置存在问题,但是它们是在mvc区域中找到的标准Web配置(我删除了自定义WebPageView

我尝试在每个模块中创建的每个视图都会发生这种情况,但是主应用程序可以正常运行。 结果,我尝试将webconfigs从主应用程序复制到模块,但是仍然有很多错误。


更新 12/12/12

修复RazorBuildProvider的实现以处理模块后,应用程序现在可以成功呈现强类型视图。 但是,智能感知仍然会产生这些错误。 我怀疑@module...行上的第一个错误是罪魁祸首,它正在阻止编辑器加载强类型模型所需的信息。


更新 12/12/12

通过消除过程,我发现ninject的PreApplicationStartMethod是元凶。 当该方法调用RegisterServices时,将调用我的moduleloader并在其中的某处引发错误。 [assembly: WebActivator.PreApplicationStartMethod(typeof(Frontline.App_Start.NinjectWebCommon), "Start")]

为了获得更好的解决方案,我需要弄清楚如何正确调试此错误,我什么也找不到,因此我在SO 调试Visual Studio编辑器异常中发布了另一个(更通用的)问题

我还将发布我的问题修复程序作为答案

因此,我无法解决问题的根源,但我有一个快速解决方案。

如果模块名称中包含visual studio,则在模块加载方法期间终止了该过程:

if (System.Diagnostics.Process.GetCurrentProcess().ProcessName.Contains("VisualStudio"))
   return;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM