【问题标题】:Method invocation is skipped in C#?在 C# 中跳过方法调用?
【发布时间】:2013-01-03 11:44:23
【问题描述】:

我有这个简单的代码:

 void Application_BeginRequest(object sender, EventArgs e) 
    {
        Trace.Write("Exception Handling", "......");
    }

然而,关于:

方法调用被跳过。编译器不会生成方法 调用,因为该方法是有条件的,或者它是部分的 没有实现的方法

我无法在 Trace 输出中看到这一行。

但是 - 其他痕迹 - 我确实看到了。

这是为什么呢?

(p.s. 页面(在网站项目下)有trace="true")。

【问题讨论】:

  • trace==true 与 TRACE 无关
  • @HenkHolterman 你是什么意思? <%@ Page Trace="true" %> 允许我追踪。 (你能解释一下吗?)
  • 删除using System.Diagnostics;
  • @HenkHolterman 我删除了它,现在我只写了Context.Trace.Write("34343");i.stack.imgur.com/qlAST.jpg
  • 我不点击图片链接。

标签: c# asp.net resharper global-asax resharper-7.1


【解决方案1】:

确保在您当前构建配置的项目设置中定义了 TRACE 常量。

更新

既然是网站项目,可以放

#define TRACE

Global.asax.cs 的顶部,以便定义跟踪符号。

【讨论】:

  • 我在网站上...没有这个菜单。
  • @RoyiNamir 更新了,抱歉,一开始不知道是网站项目
  • @RoyiNamir 如果你要使用#define,它必须进入Global.asax.cs 而不是Global.asax 的脚本块中
  • 您可以添加代码隐藏。但是由于不建议将 Trace 用于 ASP.NET,所以它有点学术性。
  • 哪个跟踪报告?我认为你混淆了2个系统。 Diagnostics.Trace != TraceContext.
【解决方案2】:

引用the JetBrains wiki(可能*链接到 ReSharper 菜单中的“为什么 ReSharper 建议这样做”):

在编码时,您可能会遇到有关方法的警告 编译器不会生成调用。为什么会这样? 典型情况是不会编译的条件方法(例如, 它标有[ReSharperInt:Conditional("DEBUG")],你在 RELEASE 模式)。可能跳过方法的另一个原因是, 在某些时候,它的主体被声明为partial 并且 没有提供实现。

鉴于这是在 Trace 的方法上,我建议这些典型案例中的第一个是适用的。

* 我还没有 v7

【讨论】:

  • 1) 我的全局 asax 文件不是部分的。 2)我;我处于调试模式。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多