每次调用外部包的方法时都调用另一个方法

时间:2018-11-30 07:52:24

标签: c# asp.net .net asp.net-mvc nuget

我已经安装了一个外部Nuget软件包,但是我经常使用其一种方法。现在,我想在提到该方法的每个方法调用之后立即调用另一个方法(我自己编写)。就像:

 MyExternalNugetPackage.Send(inputs); //varying inputs (in number, type, and values)
 MyOwnMethodCall();

由于我已经获得了成千上万的“ MyExternalNugetPackage.Send()” ,所以我不想麻烦在每个上添加“ MyOwnMethodCall()” 和每一行。有什么办法可以扩展或添加功能到“ MyExternalNugetPackage.Send()” ,以便在其内部调用“ MyOwnMethodCall()” 吗?

1 个答案:

答案 0 :(得分:1)

您可以制作一个扩展方法,例如

public static class Extensions
{
    public static void SendWithAction(this MyExternalNugetPackage myExternalNugetPackage, Action action)
    {
        myExternalNugetPackage.Send();
        action.Invoke();
    }
}

然后用这种扩展方法替换您的Send()调用

MyExternalNugetPackage.SendWithAction(MyOwnMethodCall);

很容易找到替换来更改它们。

无论哪种方式,如果您无法创建将在Send()完成之后执行的类似“ AfterSend”的挂钩,那么您需要修改代码。