当前位置: 首页 > 知识库问答 >
问题:

在PostSharp中的等价AeyJ调用切入点

元阳荣
2023-03-14

PostSharp中是否有相当于AeyJ调用切入点?

具体:ClassA和ClassB都在ClassC上调用方法foo()。我只想拦截从A到C的调用,而不是从B到C的调用。在AspectJ中,这可以通过将调用与如下所示的切入点配对来实现:

调用(*ClassC.foo())

我如何在PostSharp中实现这一点?

共有1个答案

戚哲
2023-03-14

这不可能直接实现,因为MethodInterceptionAspect应用于方法本身而不是调用站点,因此切入点只能过滤方法,而不能过滤调用站点。

可能的解决方案是有两个方面相互配合——一个是管理线程静态变量,另一个是执行拦截的方法或做一些额外的工作。然而,这不是一个理想的解决方案。

 类似资料:
  • 我想知道android应用程序中Http调用的详细信息。我在应用程序中嵌入了我的SDK。 该应用程序利用AsyncTask和HttpURLConnection进行http调用。 因此,我想如果我能拦截Asyncask的每次执行,那就太好了 我试过切入点以下 但是建议没有被执行。我不希望在我的切入点中使用扩展Asyncask的类的名称,因为这会将我的SDK限制在特定的应用程序。我想要通用的切入点,比

  • 我有一个特定包的工作代码,但我想为所有控制器、服务和dao包配置它,例如 com。abc。xyz。所容纳之物控制器 com。abc。xyz。所容纳之物服务 com。abc。xyz。所容纳之物道 com。abc。xyz。类别控制器 com。abc。xyz。类别服务 com。abc。xyz。类别dao公司 等等这是我的项目的基本包,有人可以帮助我如何去做它,使它适用于我的网络项目,包括控制器的所有类,

  • 怎么了?各位! 我正在尝试拦截所有名称中包含特定单词的类...如下所示: 我有以下拦截方法: 我试过:(有效,但看起来很可怕) 谢谢!!!

  • 我试图拦截所有在其包名中包含特定单词的类...如下所示: 我要拦截包中的所有类: 简而言之,我想拦截属于 我正努力让这项工作从过去的许多天。

  • 我创建了一个JMenuItem,它接受一个匿名的内部类AbstractAction: 我用注册到我的JavaSwing框架的注册了这个。我有一个拦截对@Abc方法调用的切入点 关于这个切入点的建议: 对actionPerform的调用将源自javax内部。Swing,我只有(rt.jar)的二进制文件-是否可以在编译时编织javax。Swing来完成上述任务?

  • 等价 cljs 的数据结构是在 js 基础之上实现的. 数值类型的数据可以直接判断. 一般通过 (= a b) 判断 a 和 b 的内容是否一致. Collection 类型数据除了 = 函数之外, 还可以使用 identical? 函数判断两个数据的引用是否一致. (identical? {} {}) ; true (identical? {:a 1} {:a 1}) ; false (= {: