Domanda

che modo devo in .NET per eseguire codice da stringa?

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

Quali altre opzioni abbiamo?

  • C # -? Compilare il codice in fase di esecuzione
  • IronRuby / IronPython?
  • F #?
È stato utile?

Soluzione

Quindi, i linguaggi dinamici come IronRuby e IronPython lo rendono molto facile da fare quello che vuoi. Creare un motore di script ed eseguire la stringa. Facile come questo.

C #, è possibile, utilizzando il DOM codice ... ma si compila il codice ogni volta che in una DLL. Questo è un comportamento costoso e può causare la vostra applicazione a crescere in termini di dimensioni della memoria nel corso del tempo, se non fare alcune cose difficili con App Domini. Si può fare, ma io in realtà preferisco utilizzare IronRuby o IronPython su questo approccio. E 'molto più semplice.

Infine, in C # 5.0, ci aspettiamo di vedere il compilatore come servizio gestito. Questo significa che sarà in grado di eseguire eval ( "// c # codice"), in futuro ... ma non è ancora disponibile.

Speranza che aiuta!

Altri suggerimenti

Checkout NCalc. Si tratta di una dll è possibile includere nella propria applicazione e supporta più operazioni logiche e matematiche. http://ncalc.codeplex.com/

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top