Frage

Wie kann ich in .NET Code aus String ausführen?

Console.WriteLine(Compile("1 + 2 * 3"));    // results is 7.

Welche anderen Optionen haben wir?

  • C# - den Code zur Laufzeit kompilieren?
  • IronRuby / Ironpython?
  • F#?
War es hilfreich?

Lösung

Die dynamischen Sprachen wie IronRuby und Ironpython machen es also sehr einfach, das zu tun, was Sie wollen. Erstellen Sie eine Skript -Engine und führen Sie die Zeichenfolge aus. Einfach so.

C#, es ist möglich, mit dem Code -DOM ... aber er hat den Code jedes Mal in eine DLL zusammengefasst. Dies ist ein kostspieliges Verhalten und kann dazu führen, dass Ihre App im Laufe der Zeit in Speichergröße wächst, wenn Sie keine kniffligen Dinge mit App -Domänen machen. Es kann getan werden, aber ich bevorzuge es wirklich, IronRuby oder Ironpython über diesen Ansatz zu verwenden. Es ist viel einfacher.

Schließlich erwarten wir in C# 5.0 den Compiler als verwalteten Dienst. Dies bedeutet, dass Sie in Zukunft Eval ("// C#Code") ausführen können ... aber es ist noch nicht verfügbar.

Ich hoffe es hilft!

Andere Tipps

Checkout ncalc. Es ist eine DLL, die Sie in Ihre Anwendung einbeziehen können, und sie unterstützt mehrere Mathematik- und Logikoperationen. http://ncalc.codeplex.com/

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top