C # не интерпретируется, поэтому в отличие от javascript или других интерпретируемых языков вы не можете сделать это изначально.Вы можете пройти четыре основных маршрута, перечисленных здесь в порядке от наименьшего к наиболее сложному ...
1) Предоставить фиксированный набор операций, которые может применить пользователь.Проанализируйте входные данные пользователя или предоставьте флажки или другие элементы пользовательского интерфейса, чтобы указать, что данная операция должна быть применена.
2) Предоставьте набор операций на основе подключаемого модуля или иным образом динамически определенный набор операций.Как и в случае с # 1, преимущество заключается в том, что не требуется специальных разрешений, таких как полное доверие.MEF может пригодиться для этого подхода: http://mef.codeplex.com/
3) Использовать динамическую среду компиляции c #, такую как paxScript: http://eco148 -88394.innterhost.net / paxscriptnet / .Теоретически это позволит вам компилировать небольшие фрагменты кода c # по требованию.
4) Используйте операторы IL Emit для анализа кода и генерации ваших операций на лету.Это, безусловно, наиболее сложное решение, которое, вероятно, требует полного доверия и чрезвычайно подвержено ошибкам.Я не рекомендую его, если у вас нет очень смутных требований и искушенных пользователей.