Если у вас есть контроль над кодом, который объявляет свойство, то, конечно, вы можете поместить точку останова в установщик.Даже если в настоящее время это автоматически реализуемое свойство, например:
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
классе типа, который объявляет свойство.
В начале программы найдите ссылку на объект, значение свойства которого изменяется, и поместите эту ссылку в это статическое поле.При необходимости используйте Reflection для извлечения приватных полей.
Добавьте global::MyNamespace.Program.MyField.ImportantProperty
в окно Watch во время отладки.
Выполните код дозначение в окне просмотра изменится.