English 中文(简体)
在C#(或CIL)现有组别框架内获得所有当地变量的简单方法
原标题:Is there a simple way to obtain all the local variables in the current stack frame in C# (or CIL)

在我上次提问之后,我想把所有变量(从目前和以往所有框架)放在这里:。 C#?是否有办法在运行时间审查中点变量?

有人建议,我以人工方式拦截电话,或利用邮政管理处等AOP框架来简化这项任务。 我审视了沙普岛,拦截论点没有包括目前 st线中的变量。 我想知道,在目前的分界线中,是否有一个简单的办法来自动获得所有当地变量。 我相信,我能够进行法典分析,制定法典,把所有这些价值观都复制到收集中,但也许会有一个内在的机制。

事先感谢任何建议。

EDIT:我本应更详细地说明我为什么要这样做。 我想能够在方法中暂停执行。 如果我有这段话题的内容,我可以稍后恢复执行,甚至将其序列化,并在另一台机器中继续实施(假设这部文字相对简单,因此没有线索或伊奥。) 操作一种法典分析工具,使我能够自动产生挽救这一国家的额外的法典。 我认为,我可能不得不分析利比里亚失踪人员调查委员会这样做。

最佳回答

您应利用从另一个过程中解冻原计划。 撰写你自己管理的夸张,不是三边,而是至少支持实现你所述目标的方法。

据我所知,没有任何东西可以管理。 您可以用来收集当地一种方法变量的运行状态信息的净金字塔。

请注意,如果当地变量的数值不存在,就足以制定处理这些变量的一般守则:

  • method can be inlined (local variables will be merged with calling methods)
  • local variables can be optimized out
  • local variable can get out of scope and be garbage collected befor end of method.
问题回答
   System.Diagnostics.StackTrace trace = new System.Diagnostics.StackTrace();
        System.Diagnostics.StackFrame frame = trace.GetFrame(0);
        MethodBase method = frame.GetMethod();
        MethodBody methodBody = method.GetMethodBody();
        if (methodBody != null)
        {
            foreach (var local in methodBody.LocalVariables)
            {
                Console.WriteLine(local);
            }
        }
        Console.ReadKey();




相关问题
Anyone feel like passing it forward?

I m the only developer in my company, and am getting along well as an autodidact, but I know I m missing out on the education one gets from working with and having code reviewed by more senior devs. ...

NSArray s, Primitive types and Boxing Oh My!

I m pretty new to the Objective-C world and I have a long history with .net/C# so naturally I m inclined to use my C# wits. Now here s the question: I feel really inclined to create some type of ...

C# Marshal / Pinvoke CBitmap?

I cannot figure out how to marshal a C++ CBitmap to a C# Bitmap or Image class. My import looks like this: [DllImport(@"test.dll", CharSet = CharSet.Unicode)] public static extern IntPtr ...

How to Use Ghostscript DLL to convert PDF to PDF/A

How to user GhostScript DLL to convert PDF to PDF/A. I know I kind of have to call the exported function of gsdll32.dll whose name is gsapi_init_with_args, but how do i pass the right arguments? BTW, ...

Linqy no matchy

Maybe it s something I m doing wrong. I m just learning Linq because I m bored. And so far so good. I made a little program and it basically just outputs all matches (foreach) into a label control. ...

热门标签