首页 > 解决方案 > 查找将值分配给变量的位置

问题描述

环境:C#/MVC/实体框架/视觉工作室。我有一个变量名,在 3 个表(所以 3 个实体)中用作列名和许多“模型”类。

错误:在一些奇怪的间歇情况下,该值在实际保存为数字后被重置为 null。

问题:我想知道所有变量出现在赋值左侧或以其他方式获取值的位置。这本身就是一个值得知道答案的普遍问题。

不幸的是,变量名本身出现在 VS 解决方案的 164 个文件的 789 行中。

标签: c#.netvisual-studio

解决方案


您可以在自定义设置器中执行类似的操作来记录所有更改,包括调用方法。可能会有一些性能影响,但您可能会发现它对调试很有帮助,您只需在一个地方进行更改,而不是在 789:

public class MyClass
{
    private int _myProperty;
    public int MyProperty
    {
        get
        {
            return _myProperty;
        }
        set
        {
            // using System.Diagnostics
            StackTrace st = new StackTrace(); // get the current stack trace
            StackFrame sf = st.GetFrame(st.FrameCount - 1); // get the last frame
            Debug.WriteLine($"My Property Set by {sf.GetMethod().Name}.  New value: {value}");

            _myProperty = value;
        }
    }
}

推荐阅读