gpt4 book ai didi

c# - PostSharp 和调试问题?

转载 作者:行者123 更新时间:2023-11-30 12:18:49 31 4
gpt4 key购买 nike

我做了一个很简单的切面,在调试的时候发现了一个问题(见代码)。我在方法导出处设置了一个断点,它实际上命中了“入口”方法。 PostSharp 1.5、Visual Studio 2008 SP1
这是一个已知错误吗?是否有任何解决方法?

class Program
{
[MyAspect]
static void Main(string[] args)
{
Console.WriteLine("body");
} // setting breakpoint here
}

[Serializable]
class MyAspect : OnMethodBoundaryAspect
{
public override void OnEntry(MethodExecutionEventArgs eventArgs)
{ // hits here actually! (debug mode)
Console.WriteLine("entry"); // hits here actually! (release mode)
}

public override void OnExit(MethodExecutionEventArgs eventArgs)
{
Console.WriteLine("exit");
}
}

最佳答案

通常当调试符号已过时或与正在运行的可执行文件不匹配时会发生这种情况。

我使用 PostSharp,以前从未见过这样的东西...您尝试过重建吗?还是删除输出文件夹然后构建?

编辑:

所以我运行了您的示例。如果将 MyAspect 实现移动到另一个文件,当您开始调试代码时,断点将变得不可用并显示以下消息:“当前不会命中断点。没有可执行文件与此行关联。. ”

如果不应用方面,它就不会发生。所以是的,看起来像编译后步骤中的某些东西确实导致了这个问题。

我将把这个答案留在这里作为对问题的澄清。如果觉得没用,我也可以删掉...

编辑 2:至于解决方法:将断点设置到上一行(不在右大括号上),然后跳过方法中的最后一行代码...

关于c# - PostSharp 和调试问题?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1392130/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com