Entwickler-Ecke
Basistechnologien - Stringwerte in ausführbaren Code umwandeln
mats74 - Mo 14.11.11 11:42
Titel: Stringwerte in ausführbaren Code umwandeln
Hallo zusammen
Ich habe folgende Problematik zu lösen:
Ich habe einen Stringinhalt, der einer Anweisung entspricht ...
C#-Quelltext
1:
| String text = "if (1 == 1) {// mach was ...} else {// mach auch was ...}"; |
... und sollte diesen Inhalt (Klartext) im compilierten Programmcode als IF-Anweisung ausführen lassen.
Der Inhalt des Textes kommt aus einer SQL-DB oder einem Textfile und kann auf jedem Client beliebig verändert werden (natürlich gemäss einer Systax, die ich dem User als Richtlinie vorgebe).
Wie kann ich diesen Klartext als ausführbaren Code auslösen? (Ist es überhaupt möglich?)
Bis jetzt sehe ich die Lösung in irgendeinem Parser-Konstrukt, der den Klartext entsprechend verarbeitet.
Da habe ich aber leider keine Idee, wie ich es angehen soll und bin um jeden Tipp oder Idee dankbar.
Horschdware - Mo 14.11.11 12:38
Stichworte für eine Google-Suche dürften hier "Reflection" und "eval()" sein.
Ralf Jansen - Mo 14.11.11 13:19
Wenn dir der konkrete Syntax noch egal ist würde ich einfach eine der vorhanden Scripting Sprachen verwenden. Also zum Beispiel
csscript [
http://www.csscript.net/].
Alternativ könntest du in der Datenbank doch auch eine kompilierte Assembly hinterlegen und nicht einfach ein Script? Ist vermutlich deutlich performanter.
mats74 - Mo 14.11.11 14:48
:dance2: ... huiuiui.
So viele gute Ansatzpunkte auf einmal und ich dachte schon, das wird nix.
Da muss ich mir zuerst einen Überblick der verschiedenen Möglichkeiten verschaffen, welche für meine Bedürfnisse die geeignetste ist.
Also ab ins stille Kämmerchen und brüt, brüt, brüt ... melde mich wieder.
Vielen Dank fürs Erste.
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!