查找将值分配给变量的位置

时间:2018-10-15 19:52:41

标签: c# .net visual-studio

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

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

问题:我想知道所有变量在赋值左侧出现的位置,或者获取值。这本身就是一个值得知道的普遍问题。

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

2 个答案:

答案 0 :(得分:3)

您可以在自定义设置程序中执行类似操作,以记录所有更改,包括调用方法。可能会影响性能,但是您可能会发现它对调试很有帮助,您只需要在一个地方进行更改,而无需在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;
        }
    }
}

答案 1 :(得分:0)

您没有提供太多信息,但是在Visual Studio中,您可以右键单击变量名称/属性并在解决方案中找到所有引用。

我建议在模型的属性上查找所有引用,并继续这样做,直到找到所需的内容为止。