订阅正在执行的任何方法

时间:2019-07-24 12:08:09

标签: c# .net reflection .net-core

在我的应用程序中,我正在创建一个获取各种信息的审核程序包,其中一种此类信息应提供有关执行哪种方法(执行时间,方法名称,方法类,程序集等)的不同信息。

我不是要使用现有的软件包或框架,而是要创建自己的软件包或框架。

我可以想象这是一件复杂的事情,但是我正在寻找一些入门指南。

1 个答案:

答案 0 :(得分:2)

您可能感兴趣的一个选项是DI级拦截。由于容器负责您的对象实例化,因此有时可以使用代理生成器对其进行配置以启用呼叫拦截。

您可以在AutofacUnity之间进行选择。

使用此方法解决的最流行的任务是跨领域的问题,例如:日志记录,测量,运行时应用程序结构分析。如果您不想使用重复的诊断代码来污染您的代码库,只需将此任务委托给拦截器即可。

相似的主意是AOP。我已经很长时间没有见过流行的AOP软件包了,也没有使用过它们,但是也有必要对此主题进行研究:

What is the best implementation for AOP in .Net?

DI Interception vs. AOP