У меня есть программа, которая должна делать следующее: Должен прочитать какой-то код из текстового файла и выполнить его в своем собственном пространстве Ассамблеи, чтобы новый исполняемый код мог получить доступ все компоненты кода уже запущены. Как это возможно ??? Помоги пожалуйста.Динамически сгенерируйте модули в том же монтажном пространстве
ответ
Не знаете, как работает магия, но я бы посмотрел на MyGeneration, который с открытым исходным кодом и принимает то, что вы хотите сделать. Он может читать файл C#, VB.Net и JScript, а затем создавать/компилировать эти сценарии и предоставляет им доступ к собственному набору классов и сборок.
Посредством монтажного пространства, вы имеете в виду AppDomain?
Возможно, вы захотите посмотреть IronPython. В качестве языка сценариев он лучше подходит для динамического добавления в программу во время выполнения.
В противном случае:
У вас есть доступ к C# компилятор (и VB.NET) через Microsoft.CSharp.CSharpCodeProvider сидит в System.dll.
Вы можете использовать его для компиляции этого текстового файла в отдельную dll (возможно, в памяти). Убедитесь, что вы добавляете свою исполняемую сборку в качестве ссылки во время компиляции. Тогда вы можете либо
- загрузить сборку в текущий исполняемый AppDomain. Таким образом, он имеет доступ ко всем объектам вашего приложения. Вы, однако, не можете выгрузить код еще раз. Вам придется разгрузить весь AppDomain (т. Е. Ваше приложение)
- загрузить сборку в отдельный AppDomain. Вы должны явно предоставить доступ к некоторым вашим объектам с помощью Remoting (или других методов обработки связи), но вы можете выгрузить/заменить код в случае изменения текстового файла.
В любом случае вам придется использовать отражение для вызова динамически загружаемого кода.
- 1. элементов различных размеров в том же пространстве
- 2. причина для карты os-кода в том же логическом пространстве?
- 3. Как разместить все мои активные модули в одном и том же пространстве имен в python?
- 4. Динамически сгенерируйте действие
- 5. Javascript: ссылочная переменная в массиве в том же пространстве имен
- 6. Динамически сгенерируйте шаблон ng-table
- 7. Добавить и изменить размер DIV в том же пространстве
- 8. 2 Проекты в том же рабочем пространстве xcode (доля кода)
- 9. Rails 3 Вложенные ресурс не в том же пространстве имен
- 10. Открытие двух программ в одном и том же пространстве памяти
- 11. Pass переменной между проками в том же пространстве имен
- 12. Eclipse не может разрешить перечисление в том же пространстве имен?
- 13. Модули импорта Python в том же каталоге для Flask
- 14. PyDev: Модули Jython и классы Java в том же проекте
- 15. Матрица в монтажном измерении mxn
- 16. Создание объекта в пространстве имен с конструктором, определенным в том же пространстве имен. C++
- 17. Почему один класс, содержащийся в пространстве имен, не видит другого, содержащегося в том же пространстве имен?
- 18. Maven/Swagger: сгенерируйте модуль (включая POM) - затем используйте его как dep в том же сборке?
- 19. ruby-define модули динамически
- 20. Тот же идентификатор в 2 разных перечислениях в том же пространстве имен в разных файлах
- 21. Динамически загружать модули угловые
- 22. Динамически загружать модули? angular2
- 23. Android загружает модули динамически
- 24. Динамически добавляя модули в блестящие
- 25. Динамически загружать модули python
- 26. PHP namespace не находит класс в том же пространстве имен в том же каталоге - работает в dev, а не prod
- 27. Экземпляр класса C# недоступен в том же пространстве имен и в той же библиотеке проектов
- 28. Динамическое преобразование строк в имя класса в том же пространстве имен Type.GetType() return null
- 29. Могу ли я иметь класс и интерфейс с тем же именем в том же пространстве имен?
- 30. есть .net framework требуется в монтажном щите?
Прошу пояснить, что вы подразумеваете под «собственным пространством сборки», «все компоненты» и «код уже запущен» – abhilash