動態執行C#程式碼檔案
問題:
您的WPF C#應用程式附帶一個按鈕,需要執行儲存在應用程式運行時目錄中單獨文字檔案中的程式碼。
解:
要動態執行文字檔案中的程式碼,請依照下列步驟操作:
以下是如何執行動態編譯的類別方法的範例程式碼:
<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>
按照這些步驟,您可以在WPF應用程式中動態執行來自程式碼檔案的C#程式碼。
以上是如何從 WPF 應用程式中的檔案動態執行 C# 程式碼?的詳細內容。更多資訊請關注PHP中文網其他相關文章!