Как следить за заданием операции на чистом свойстве? - PullRequest
0 голосов
/ 14 декабря 2011

У меня есть недвижимость:

public Foo My Foo{ get; set; }

Я хочу контролировать установить операцию на нем, но точка останова не установлена ​​на нем, как контролировать его без изменения кода?

Ответы [ 3 ]

2 голосов
/ 14 декабря 2011

(визуальное меню студии) Отладка -> Новая точка останова -> Перерыв в функции ...

геттер: ClassName.get_PropertyName() в вашем примере это будет Class.get_MyFoo()

сеттер: ClassName.set_PropertyName(PropertyType) в вашем примере это будет Class.set_MyFoo(Foo)

1 голос
/ 14 декабря 2011

Если вы не можете изменить существующий код и по-прежнему хотите иметь возможность перехватывать вызовы существующих методов, вы можете оформить заказ PostSharp или, возможно, API профилировщика .

1 голос
/ 14 декабря 2011

Вы не можете, насколько я знаю.Если вы хотите, чтобы свойство делало что-то нетривиальное, вам нужна полная реализация свойства вместо автоматически реализуемой.Конечно, сделать это несложно - это автоматически реализуемое свойство просто эквивалентно:

private Foo myFoo;

public Foo MyFoo
{
    get { return myFoo; }
    set { myFoo = value; }
}

Так что просто преобразуйте его в эту форму и добавьте любой необходимый код (ведение журнала и т. Д.).

...