C# 订阅正在执行的任何方法
在我的应用程序中,我正在创建一个获取各种信息的审计包,其中一种信息应该提供关于执行什么方法的不同信息(执行时间、方法名称、方法类、程序集等) 我不打算使用现有的包或框架,而是创建自己的包或框架C# 订阅正在执行的任何方法,c#,.net,reflection,.net-core,C#,.net,Reflection,.net Core,在我的应用程序中,我正在创建一个获取各种信息的审计包,其中一种信息应该提供关于执行什么方法的不同信息(执行时间、方法名称、方法类、程序集等) 我不打算使用现有的包或框架,而是创建自己的包或框架 我可以想象这是一件很复杂的事情,但我正在寻找一些指导来让我开始 您可能感兴趣的一个选项是DI级拦截。由于容器负责对象实例化,所以有时可以使用代理生成器对其进行配置以启用调用拦截 你可以选择,或者 使用这种方法要解决的最流行的任务是交叉关注点,如:日志记录、测量、运行时应用程序结构分析。如果您不想用重复的诊
我可以想象这是一件很复杂的事情,但我正在寻找一些指导来让我开始 您可能感兴趣的一个选项是DI级拦截。由于容器负责对象实例化,所以有时可以使用代理生成器对其进行配置以启用调用拦截 你可以选择,或者 使用这种方法要解决的最流行的任务是交叉关注点,如:日志记录、测量、运行时应用程序结构分析。如果您不想用重复的诊断代码污染代码库,只需将此任务委托给拦截器即可 类似的想法是。我很久没有看到流行的AOP软件包了,也没有使用过它们,但也值得对这个主题进行研究:
在其最一般的形式中,它被称为探查器,虽然您当然可以构建自己的探查器,但它绝非微不足道。还有一些挑战性较小的选项,如使用代码生成来插入特定方法以调用审核代码,将单个调用包装在委托中,或者只留下调用代码,使用各种可用的日志记录/性能计数器包添加自己的插入。