这种情况是,我们已经使用Unity编写了一个调试器拦截器,以轻松地包装对象来编写完成方法所需的时间。可悲的是,它也在编写所有公共财产的获取和设置发票。因此,我们只需在属性上放置一个属性即可将其从跟踪中排除。像这样:
Property Example { [ExcludeFromTracing]get; [ExcludeFromTracing]set; }
因为:
ExcludeFromTracing
Property Example { get; set; }
不起作用,因为get和set get编译为它们自己的方法,这些方法将在运行时被拦截。
所以这对于C#来说是可行的...现在挑战来了,我们还有旧版vb.net应用程序,因为我们遇到了性能问题,只是想添加此拦截器以查明应用程序中的瓶颈。
可悲的是,我找不到在接口中将属性添加到属性get和set方法的vb.net吗?或任何其他使用unity.interception排除侦听属性调用的方式
答案 0 :(得分:0)
您可以检查IsSpecialName
flag是否设置为过滤掉编译器生成的getter和setter(以及事件等)。
我猜您正在使用IInterceptionBehavior
。在Invoke
方法中,检查input.MethodBase.IsSpecialName
。