Roo*_*ian 19 c# debugging visual-studio-2010 visual-studio
在Visual Studio 2010中是否可以中断更改对象属性的任何内容(例如方法)?
或者是否可以找出ASP.NET Webforms应用程序中的对象属性是否已更改?
更新:
正确的答案可以在以下网址找到:http://stackoverflow.com/questions/2682613/cant-set-breakpoints-on-an-auto-property-setter-why/6713920#6713920
Tim*_*mwi 13
如果您可以控制声明属性的代码,那么当然可以在setter中放置一个断点.即使它目前是一个自动实现的属性,例如:
public string SomeProperty { get; set; }
Run Code Online (Sandbox Code Playgroud)
你可以像这样轻松改变它:
private string _someProperty;
public string SomeProperty {
get { return _someProperty; }
set {
// Set breakpoint here, or type Debugger.Break();
_someProperty = value;
}
}
Run Code Online (Sandbox Code Playgroud)
如果值实际上是字段而不是属性,您仍然可以将其更改为属性以实现相同的操作.
如果您无法访问声明该属性的代码,那么它就会变得更加困难.我个人所做的就是这个,但它有点费力:
在Program声明属性的类的类中声明一个公共静态字段.
在程序的早期,找到对其属性值更改的对象的引用,并将该引用放在此静态字段中.如有必要,请使用Reflection检索私有字段.
global::MyNamespace.Program.MyField.ImportantProperty调试时添加到Watch窗口.
逐步执行代码,直到监视窗口中的值发生更改.
| 归档时间: |
|
| 查看次数: |
10319 次 |
| 最近记录: |