Способы добавления функциональности в приложение C # без перекомпиляции - PullRequest
2 голосов
/ 13 марта 2012

Какими способами люди находили / использовали для добавления функциональности в приложение .NET / C # без перекомпиляции?

Методология, которая мне приходит в голову, заключается в том, чтобы иметь код, который ищет файл для чтения, анализирует этот файл, а затем динамически создает элементы управления и их обработчики событий и т. Д. На основе того, что содержится в файле (возможно, XML-файл).

Или динамически загружаемые файлы .DLL будут считаться "не перекомпилированными"?

Какие-нибудь идеи / "военные истории"?

Ответы [ 3 ]

6 голосов
/ 13 марта 2012
2 голосов
/ 13 марта 2012

Для довольно простых случаев с четко определенным поведением:

Определите интерфейс для вашего плагина.Реализуйте интерфейс в dll.Загрузите dll с Assembly.LoadFrom.

Я бы добавил GUID к каждой dll, чтобы вы могли различать их.

1 голос
/ 13 марта 2012

Посмотрите, как это делает ASP.Net - вы можете добавить файл ASPX / ASPX.cs во время работы сайта. Краткая версия: ASP.Net прослушивает изменения файлов и компилирует новые файлы в новые сборки, а затем загружает их в существующий домен приложений для использования при рендеринге новых страниц.

...