C# Stati c Функция загрузки библиотеки во время выполнения? - PullRequest
0 голосов
/ 24 апреля 2020

У меня есть куча статических c функций, которые идентичны и реализованы примерно в 15 устаревших приложениях, которые я поддерживаю. Я пытаюсь сделать так, чтобы их было легче поддерживать. Я знаю, что могу создать библиотеку stati c и добавить ссылку на нее во все проекты, но если я когда-нибудь внесу изменения, мне придется перекомпилировать все проекты.

Например, вот одна из stati c функций, которые усеяны в унаследованном коде:

private static void DoFileMove(string source, string destination)
{
    Directory.CreateDirectory((new FileInfo(destination)).DirectoryName);

    if (File.Exists(source))
    {
        if (File.Exists(destination))
            File.Delete(destination);
        File.Move(source, destination);
    }
}

Итак, в коде есть много вызовов

DoFileMove(src,dst);

Я знаю, что мог бы реализовать это как нестати c метод, а затем внедрить библиотеку и изменить все вызовы на

myInjectedObject.DoFileMove(src,dst);

, но я чувствую, что этого следует избегать. Я также хотел бы избежать создания оболочек stati c для функций в приложении, которые будут реализовывать внедренный класс, например:

private static void DoFileMove(string source, string destination)
{
    myInjectedObject.DoFileMove(source, destination);
}

Есть ли способ динамически загружать во время выполнения группу stati? c функции из библиотеки, которые я мог бы использовать так же, как они вызываются в устаревшем коде?

1 Ответ

0 голосов
/ 27 апреля 2020

Как ответил Игорь, можно просто добавить ссылку на стати c библиотеку, и пока сигнатура метода и имя класса не меняются, перекомпиляция не требуется.

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