Возможно ли выполнить код из строковой переменной, например:
string mystring = "Console.WriteLine (\" Hi \ ");"; Возможно ли выполнить содержимое mystring (печать «Привет»)?C# execute variable code
ответ
Да. Запустите компилятор во время выполнения и передайте код. Он выплюнет исполняемый код. См. Пространство имен System.CodeDom
, особенно, System.CodeDom.Compiler
.
Используйте Code DOM
Возможно использование System.Reflection.Emit или System.CodeDom пространств имен, но это не совсем хорошая идея, поскольку нет механизма контроля, что пространства имен и не допускаются. Пользователь может создать строку, которая уничтожит ваш жесткий диск.
eval() - Подобные функции представляют собой огромные дыры в безопасности, и их следует избегать. Предпочтительным вариантом является DSL (domain specific language).
Необходимо использовать отражение, чтобы получить что-то в этом роде. C# не является динамическим или интерпретируемым языком, поэтому вы не получите его из коробки
- 1. nodejs execute string variable
- 2. Echo Execute PHP Code
- 3. Triggering execute actionscrpit code
- 4. re-execute/reload div code
- 5. PDO execute variable, которая хранит массив
- 6. write variable in Execute SQL Task
- 7. js variable on html code
- 8. Parse: Cloud Code Variable Declartaion
- 9. SAS Macro Code Variable Creation
- 10. Execute Till User Code не работает
- 11. knockout execute code after template application
- 12. C++ cant variable variable BOOST_FOREACH
- 13. Eclipse Custom Variable для Java Code Templates
- 14. Assembly define variable in .code (MASM)
- 15. matlab code on geometric random variable
- 16. C# try catch continue execute
- 17. C# Variable Getters/Setters
- 18. C++ private variable confusion
- 19. C# Рослин Execute
- 20. C# threads stop execute
- 21. C# execute Powershell
- 22. c execute не работает
- 23. Mysq $ stmt-> execute (array ($ variable)); не работает, как ожидалось
- 24. Как передать Fabric Имя задачи как Variable to execute()
- 25. C# winforms code to C# wpf code
- 26. C++ code (malloc method) to C# code
- 27. JSON parsing C# no variable variable
- 28. PHP Code does not Execute (new to php)
- 29. make code execute, когда x начинается с y
- 30. Execute C# application в PHP
С вопросами, как это это хорошая идея, чтобы объяснить, почему вы хотите это поведение, так как это явно не часто , Делая так, есть шанс, что кто-то может предложить более элегантное решение, которое даст более конкретное поведение, которое вы пытаетесь достичь. –
На самом деле, мне тоже хотелось бы ответить на этот вопрос. Некоторое время я подумывал о написании стиля стиля Python для C#, используя отражение или подобное. Я знаю, что некоторые из них существуют, но использование уже написанного уже не является отличным учебным упражнением - одна из причин, по которой я отказываюсь использовать любые библиотеки вне .net в своих приложениях - мне нравится самим изучать вещи. – dotalchemy