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 中国語 Web サイトの他の関連記事を参照してください。