我已经安装了一个外部Nuget软件包,但是我经常使用其一种方法。现在,我想在提到该方法的每个方法调用之后立即调用另一个方法(我自己编写)。就像:
MyExternalNugetPackage.Send(inputs); //varying inputs (in number, type, and values)
MyOwnMethodCall();
由于我已经获得了成千上万的“ MyExternalNugetPackage.Send()” ,所以我不想麻烦在每个上添加“ MyOwnMethodCall()” 和每一行。有什么办法可以扩展或添加功能到“ MyExternalNugetPackage.Send()” ,以便在其内部调用“ MyOwnMethodCall()” 吗?>
答案 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”的挂钩,那么您需要修改代码。