Загрузите сборку и смените источник, возможно и как?

Я пишу .NET на лету компилятор для сценариев CLR и хочу реализовать следующую идею: есть файл шаблона с кодом C#, я хочу прочитать его, создать сборку, загрузить ее и усилить исходный код на месте. летать. Как я могу это сделать?

1 ответ

Решение

Вы можете сделать это с CompileAssemblyFromSource. В прошлом я делал нечто похожее, когда дополнял некоторые скрипты статическими обертками классов, чтобы их можно было легко вызывать. Вы можете увидеть это (или украсть у него) здесь.

Чтобы сделать это, просто загрузите ваш шаблон, добавьте дополнительные усиления в код и скомпилируйте его за один раз.


Если вы хотите изменить существующую сборку, вам нужно будет использовать что-то вроде Mono.Cecil. Это позволяет загружать и изменять как сборку во время выполнения. Есть статья CodeProject, использующая Reflexil, продукт GPL, основанный на Cecil, который может помочь вам получить некоторые идеи...

Другие вопросы по тегам