Penso che il modo più semplice sarebbe utilizzare uno dei linguaggi di scripting .Net già esistenti, come IronPython o IronRuby.
Ad esempio, con IronPython puoi scrivere il tuo codice di script in Python, eseguirlo dall'applicazione C # e poi elaborare i risultati dallo script.
Il codice potrebbe essere simile a questo:
var engine = Python.CreateEngine();
var scope = engine.CreateScope();
scope.SetVariable("value", 43);
var code = @"
# overcomplicated just to show it's really Python
def areEqual (value1, value2):
return value1 == value2
areEqual(value, 42)";
Console.WriteLine(engine.Execute<bool>(code, scope));
Un'altra opzione sarebbe utilizzare le funzionalità di scripting di Roslyn, ma non è ancora pronto per la produzione.