Загрузите сборку и смените источник, возможно и как? - PullRequest
2 голосов
/ 25 марта 2009

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

1 Ответ

3 голосов
/ 25 марта 2009

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

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


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

...