动态执行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中文网其他相关文章!