c# - 查找将值分配给变量的位置
问题描述
环境:C#/MVC/实体框架/视觉工作室。我有一个变量名,在 3 个表(所以 3 个实体)中用作列名和许多“模型”类。
错误:在一些奇怪的间歇情况下,该值在实际保存为数字后被重置为 null。
问题:我想知道所有变量出现在赋值左侧或以其他方式获取值的位置。这本身就是一个值得知道答案的普遍问题。
不幸的是,变量名本身出现在 VS 解决方案的 164 个文件的 789 行中。
解决方案
您可以在自定义设置器中执行类似的操作来记录所有更改,包括调用方法。可能会有一些性能影响,但您可能会发现它对调试很有帮助,您只需在一个地方进行更改,而不是在 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;
}
}
}
推荐阅读
- python - Python,无法将新字符串分配给矩阵单元
- javascript - 如何在Nodejs中的对象后排列
- python - 使用 Python 中的 SSL 证书连接 Cloud SQL postgres DB 时出现问题(使用 Pkg Psycopg2)
- c# - 使用 app.useSpa() 并处理 404 的 Asp.Net Core
- python - 如何改进 CNN 准确度图?(过拟合/欠拟合)
- flutter - 使 ListView 滚动到一个偏移量
- r - 使用 R 中的 dplyr 完成数据框中缺失的小时数
- python - 从 XML 中提取所有元素
- javascript - 使用 php 或 javascript 排序评论数据算法
- r - FUN 中的错误(左,右):二元运算符 2 的非数字参数