Под сборочным пространством вы имеете в виду AppDomain?
Возможно, вы захотите взглянуть на IronPython . Как язык сценариев он лучше подходит для динамического добавления в программу во время выполнения.
В противном случае:
У вас есть доступ к компилятору C # (и VB.NET) через Microsoft.CSharp.CSharpCodeProvider , расположенный в System.dll.
Вы можете использовать его для компиляции этого текстового файла в отдельную dll (возможно, в памяти). Убедитесь, что вы добавляете свою текущую сборку в качестве ссылки при компиляции. Тогда вы можете либо
- загрузить сборку в текущий исполняемый домен приложений. Таким образом, он имеет доступ ко всем объектам в вашем приложении. Вы, однако, не можете выгрузить код снова. Вам придется выгрузить весь AppDomain (т.е. ваше приложение)
- загрузить сборку в отдельный домен приложений. Вы должны будете явно предоставить доступ к некоторым вашим объектам через Remoting (или другие методы взаимодействия с процессами), но вы можете выгрузить / заменить код в случае изменения текстового файла.
В любом случае вам придется использовать отражение для вызова вашего динамически загруженного кода.