gpt4 book ai didi

c# - 在 "delegate"中记录每个方法

转载 作者:行者123 更新时间:2023-11-30 16:03:24 24 4
gpt4 key购买 nike

我有一个代表:

private delegate void ActivitySteps(string inputFolder, string outputFolder);

在我类(class)的一个方法中,我向它注册了各种事件:

this.activitySteps = A;
this.activitySteps += B;

等等……

最后我调用它:

this.activitySteps.Invoke(inputFolder, outputFolder);

现在我想添加日志记录,以便我知道调用委托(delegate)时哪个事件(即方法失败)。 (A 或 B 或其他)。有没有一种方法可以做到这一点,这样我就不必在每个方法中登录,并且可以将日志记录集中在委托(delegate)中。

最佳答案

您可以在调用委托(delegate)时使用 GetInvocationList():

foreach( ActivitySteps del in this.activitySteps.GetInvocationList() )
{
try
{
del.Invoke( inputFolder, outputFolder );
}
catch( Exception ex )
{
Console.WriteLine( "{0} threw {1}", del.Method.Name, ex );
}
}

关于c# - 在 "delegate"中记录每个方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36437927/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com