Вызывать другой метод при каждом вызове метода внешнего пакета - PullRequest
0 голосов
/ 30 ноября 2018

Я установил внешний пакет Nuget и слишком часто использую один из его методов.Теперь я хочу вызывать другой метод (я сам его написал) сразу после каждого вызова метода упомянутого метода.Это будет выглядеть так:

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

Так как у меня более тысячи "MyExternalNugetPackage.Send ()" , я не хочу добавлять проблемы "MyOwnMethodCall () " в каждой строке.Можно ли как-то расширить или добавить функциональность к "MyExternalNugetPackage.Send ()" , чтобы внутри себя он вызывал "MyOwnMethodCall ()" ?

1 Ответ

0 голосов
/ 30 ноября 2018

Вы можете создать метод расширения, например

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

, а затем заменить вызовы Send () на метод расширения, подобный этому

MyExternalNugetPackage.SendWithAction(MyOwnMethodCall);

Довольно просто найти замену, чтобы изменить их.

В любом случае, если вы не можете создать какой-то хук, такой как "AfterSend", который будет выполняться после завершения Send (), вам нужно изменить код.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...