Я действительно хотел сделать это снаружи к DLL, так что когда этот другой человек выпускает новую DLL, я могу быстро обновить мой DLL
Подумайте об этом. Допустим, вы успешно перехватываете/переопределяете свои частные функции. Что произойдет, когда следующий выпуск удалит эти функции или изменит их поведение?
Члены обычно являются частными по причине.
Подлинными подходами являются обертывание внешней сборки для управления/абстрактного поведения или переопределение открытых/защищенных членов, предназначенных для наследования.
Вызов частных членов легко с отражением. Изменение их так, чтобы их вызывающие пользователи использовали новую реализацию, более сложны.
и не нужно изменять источник и создавать собственную DLL.
Если вы действительно, действительно нужно сделать это, изменяя источник, вероятно, самый простой подход. * Вы также можете посмотреть на IL weaving, которые могут быть подходящими для этой задачи.
Лучшим подходом было бы работать с автором, чтобы сделать библиотеку более расширяемой в областях, которые вам нужны.
* Это предполагает, что у вас есть законный доступ к источнику или разрешено декомпилировать сборку. Это может привести к нарушению положения об обратной конструкции в лицензии, аннулированию контракта на обслуживание и т. Д. Я не юрист.
Можете ли вы рассказать о своем классе? – BradleyDotNET
Я предполагаю, что смогу, да. Но функции, которые я хочу изменить, являются частными. – rygo6
Я был бы очень удивлен, если бы это было возможно. –