2010-11-20 4 views
1

ich diese Zeichenfolge in einer XML-Datei haben:einen String ausführen und abrufen Ergebnis

DateTime.ParseExact("21/06/1980", "dd/MM/yyyy", 
        System.Globalization.CultureInfo.GetCultureInfo("fr-fr")) 

Ich würde das xml mag lesen, diese Zeichenfolge ausführen und das Ergebnis abzurufen.

Haben Sie Ideen, das Ergebnis auszuführen und abzurufen?

Antwort

2

Weder C# noch das .NET-Framework bieten eine Art von Code-Code-Auswertung. Wenn Sie das Format der Zeichenfolge garantieren könnten (mit anderen Worten, Sie könnten garantieren, dass die Zeichenfolge einen statischen Methodenaufruf mit drei Parametern beschreibt), könnten Sie den Typ, die Methode und die Argumente analysieren und sie mit Reflektion aufrufen.

Können Sie das allgemeinere Problem beschreiben? Vielleicht gibt es einen besseren Ansatz.

0

C# hat keine solche Funktion. Sie können jedoch versuchen, eine DLL zur Laufzeit zu kompilieren, sie zu laden und auszuführen.

This Forum hat ein solches Beispiel. Die Grundidee ist CodeDom.

0

Wenn Ihre Anwendung kompiliert wird, wird Ihr Code in MSIL umgewandelt, was dann in .NET Framework ausgeführt wird.

Worum Sie bitten, ist das Kompilieren von beliebigem C# -Code zur Laufzeit und dann ausführen.

Es gibt ein paar mögliche Ansätze, aber keine davon ist besonders einfach.

Die einfachste Sache ist einfach, wenn Sie eine Abhängigkeit davon haben können, dass das .NET SDK in der von Ihnen ausgeführten Umgebung vorhanden ist. Wenn dies der Fall ist, können Sie den CSharp Compiler (csc) aufrufen, eine DLL erstellen und sie dann laden.

Seien Sie jedoch vorsichtig - dieser generierte Code hat alle die gleichen Rechte und Fähigkeiten wie Ihr eigener Code.

Darüber hinaus werden Sie wahrscheinlich Probleme mit denselben Assemblynamen bekommen, die mehrmals in derselben Anwendungsdomäne geladen werden.

Verwandte Themen