Heim >Backend-Entwicklung >C++ >Wie kann ich C#-Code aus einer Datei in einer WPF-Anwendung dynamisch ausführen?
Dynamische Ausführung von C#-Codedateien
Frage:
Ihre WPF-C#-Anwendung verfügt über eine Schaltfläche, die den Code ausführen muss, der in einer separaten Textdatei im Laufzeitverzeichnis der Anwendung gespeichert ist.
Lösung:
Um Code in einer Textdatei dynamisch auszuführen, befolgen Sie diese Schritte:
Hier ist Beispielcode zum Ausführen einer dynamisch kompilierten Klassenmethode:
<code class="language-csharp">using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using System.IO; using System.Reflection; using System.Net; using Microsoft.CSharp; using System.CodeDom.Compiler; namespace ConsoleApplication2 { class Program { static void Main(string[] args) { string source = @" namespace Foo { public class Bar { public void SayHello() { System.Console.WriteLine(""Hello World""); } } } "; Dictionary<string, string> providerOptions = new Dictionary<string, string> { {"CompilerVersion", "v3.5"} }; CSharpCodeProvider provider = new CSharpCodeProvider(providerOptions); CompilerParameters compilerParams = new CompilerParameters {GenerateInMemory = true, GenerateExecutable = false}; CompilerResults results = provider.CompileAssemblyFromSource(compilerParams, source); if (results.Errors.Count != 0) throw new Exception("编译失败!"); object o = results.CompiledAssembly.CreateInstance("Foo.Bar"); MethodInfo mi = o.GetType().GetMethod("SayHello"); mi.Invoke(o, null); } } }</code>
Mit diesen Schritten können Sie C#-Code dynamisch aus einer Codedatei in einer WPF-Anwendung ausführen.
Das obige ist der detaillierte Inhalt vonWie kann ich C#-Code aus einer Datei in einer WPF-Anwendung dynamisch ausführen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!