繁体   English   中英

是否可以侦听C#中的函数调用(即将C#函数调用视为事件)?

[英]Is it possible to listen for function calls in C# (i.e. treat C# function calls as events)?

我想在应用程序中的函数调用时记录日志。 有没有办法我可以侦听调用的函数并在此类事件上运行代码?

如果是这样,我从哪里开始研究如何做?

只需完成将日志记录直接插入所需位置的工作即可。

public class MyClass
{
    private ILogger _logger;

    public MyClass(ILogger logger)
    {
        _logger = logger;
    }

    public void DoSomething()
    {
        logger.Information("Something happened");
    }
}

这将允许您自定义类的日志记录需求-尤其是当您将SEQ 用作Serilog时。

我怀疑面向方面的日志记录方法是否真的可以让您获得很好的有用的语义日志记录体验。

如果您不想用log分散您的方法,请考虑使用AOP(面向方面​​的编程)库来这样做。

是一个说明这一点的博客。

您想要做什么? 是为了性能分析,还是因为您想在某个函数被调用了x次后执行某项操作?

如果用于性能分析,则使用Visual Studio,IDE具有一些内置的分析功能。 在“调试”菜单下,有“性能分析器”(Alt + F2)。 在您的应用程序上运行它可以为您提供有关调用内容,多少时间,多少CPU负载等的许多详细信息。如果在运行“生成详细报告”后生成“创建详细报告”,则该功能特别有用。

解释起来有点困难,但是如果您对在应用程序中执行各种功能花费了多少时间感兴趣,那么它会非常有用。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM