是否有可能在 Visual Studio 2010 中中断任何更改对象属性的内容(例如方法)?
或者是否有可能查明对象属性是否在 ASP.NET Webforms 应用程序中发生了变化?
更新:
可以在以下位置找到正确答案:http://stackoverflow.com/questions/2682613/cant-set-breakpoints-on-an-auto-property-setter-why/6713920#6713920
最佳答案
如果您可以控制声明该属性的代码,那么您当然可以在 setter 中放置一个断点。即使它当前是一个自动实现的属性,例如:
public string SomeProperty { get; set; }
你可以很容易地改变它:
private string _someProperty;
public string SomeProperty {
get { return _someProperty; }
set {
// Set breakpoint here, or type Debugger.Break();
_someProperty = value;
}
}
如果该值实际上是一个字段而不是一个属性,您仍然可以将其更改为一个属性来实现相同的目的。
如果您无法访问声明该属性的代码,那么它会更难一些。我个人是这样做的,但是有点费力:
在声明属性的类型的
Program
类中声明一个公共(public)静态字段。在程序的早期,找到对其属性值更改的对象的引用,并将该引用放入此静态字段中。如有必要,使用反射来检索私有(private)字段。
在调试时将
global::MyNamespace.Program.MyField.ImportantProperty
添加到 Watch 窗口。逐步执行代码,直到监 window 口中的值发生变化。
关于c# - Visual Studio 2010 - 打破任何改变对象属性的东西,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3600186/