VB.net 获取和设置属性的属性
VB.net Attributes on properties get and set
场景是我们使用Unity编写了一个调试器拦截器来轻松包装一个对象来编写一个方法完成所需的时间流逝。可悲的是,它还编写了所有 public 属性 get 和 set 调用。所以我们简单地在 属性 上放置一个属性以将其排除在跟踪之外。类似于:
Property Example { [ExcludeFromTracing]get; [ExcludeFromTracing]set; }
开始于:
ExcludeFromTracing
Property Example { get; set; }
不起作用,因为 get 和 set 被编译成它们自己的方法,这些方法将在运行时被拦截。
所以这在 C# 中对我们有用...现在挑战来了,我们也有遗留 vb.net 应用程序,我们有性能问题,只是想添加这个拦截器来查明我们应用程序中的瓶颈。
遗憾的是,我找不到 vb.net 相当于向接口中的 属性 get 和 set 方法添加属性?或使用 unity.interception
排除 属性 调用拦截的任何其他方式
您可以检查 IsSpecialName
flag 是否设置为过滤掉编译器生成的 getter 和 setter(以及事件等...)。
我猜你用的是 IInterceptionBehavior
。在 Invoke
方法中,检查 input.MethodBase.IsSpecialName
.
场景是我们使用Unity编写了一个调试器拦截器来轻松包装一个对象来编写一个方法完成所需的时间流逝。可悲的是,它还编写了所有 public 属性 get 和 set 调用。所以我们简单地在 属性 上放置一个属性以将其排除在跟踪之外。类似于:
Property Example { [ExcludeFromTracing]get; [ExcludeFromTracing]set; }
开始于:
ExcludeFromTracing
Property Example { get; set; }
不起作用,因为 get 和 set 被编译成它们自己的方法,这些方法将在运行时被拦截。
所以这在 C# 中对我们有用...现在挑战来了,我们也有遗留 vb.net 应用程序,我们有性能问题,只是想添加这个拦截器来查明我们应用程序中的瓶颈。
遗憾的是,我找不到 vb.net 相当于向接口中的 属性 get 和 set 方法添加属性?或使用 unity.interception
排除 属性 调用拦截的任何其他方式您可以检查 IsSpecialName
flag 是否设置为过滤掉编译器生成的 getter 和 setter(以及事件等...)。
我猜你用的是 IInterceptionBehavior
。在 Invoke
方法中,检查 input.MethodBase.IsSpecialName
.