c# - 枚举创建断点

我有一个枚举,我想弄清楚是什么代码实际创建了它的一个实例。我有很多代码,而且我相当确定我正在寻找的代码是在我当前解决方案中不存在的众多晦涩项目之一中,因此查找用法将不起作用。

我知道枚举上没有构造函数这样的东西,但我真的很想要一种方法来中断执行并在任何代码创建和使用此枚举时检查调用堆栈。我曾尝试在各个枚举值上放置断点,但它们从不切换,即使我知道它们正在被使用。

这可能吗,还是我需要走另一条路才能找到我要找的东西。

最佳答案

好吧,这在技术上是可行的,假设您控制枚举本身的代码:

  1. 将 YourEnum 重命名为 YourEnumInternal
  2. 创建类 YourEnum 并为 YourEnumInternal 中的每个值放置一个具有相同名称的属性,并返回 YourEnumInternal 的相应成员。
  3. 在每个属性中放置断点。

此外,如果您真正想做的是在将此枚举的成员添加到特定集合时查看调用堆栈(如您在评论中所说),为什么不在该集合上找到用法(希望它有一个较小的范围?)并在添加项目的任何地方放置断点(或者更好的是,带有 $CALLSTACK 伪变量的 TracePoints)?

https://stackoverflow.com/questions/6929908/

相关文章:

c# - 如何将整数数组转换为内存流?

eclipse - 如何从 Eclipse 类路径中排除一个 jar?

iis - Windows 身份验证通过反向代理问题

unit-testing - Qt单元测试中使用qDebug

regex - Nginx:如何重写除图像以外的所有 URL?

web-services - spring web services - 如何在方法端点中获取字符串

csv - 如何使用 RSqlite 将 sqlite 导出为 CSV?

python - 创建 StringToSign

google-maps - 我如何知道哪个标记正在被 Google Maps API 拖动事件拖动?

eclipse - 无法在 Eclipse + EPIC 中查看本地