我有一个属性:
public Foo My Foo{ get; set; }
我想监控设置操作,但断点没有确定,如何在不更改代码的情况下监控它?
答案 0 :(得分:2)
(visual studio菜单)Debug - >新断点 - >打破职能......
getter:ClassName.get_PropertyName()
在您的示例中,这将是Class.get_MyFoo()
setter:ClassName.set_PropertyName(PropertyType)
在您的示例中,这将是Class.set_MyFoo(Foo)
答案 1 :(得分:1)
据我所知,你不能。如果您希望该属性执行任何非常重要的操作,则需要完全实现该属性,而不是自动实现的属性。当然,这并不难 - 自动实现的属性只相当于:
private Foo myFoo;
public Foo MyFoo
{
get { return myFoo; }
set { myFoo = value; }
}
所以只需将其转换为该表单并添加您需要的任何代码(日志记录等)。
答案 2 :(得分:1)
如果您无法修改现有代码,但仍希望能够拦截对现有方法的调用,则可以结帐PostSharp或profiler API。