c# string转代码运行
时间: 2023-08-30 10:11:09 浏览: 101
c#代码转换程序
将字符串转为可执行代码需要使用C#的反射机制。以下是一个简单的示例:
```csharp
using System;
using System.Reflection;
using Microsoft.CodeAnalysis.Scripting;
using Microsoft.CodeAnalysis.CSharp.Scripting;
class Program
{
static void Main(string[] args)
{
string code = @"
using System;
namespace MyNamespace {
public class MyClass {
public void MyMethod() {
Console.WriteLine(""Hello, World!"");
}
}
}
";
var scriptOptions = ScriptOptions.Default
.AddReferences(typeof(Console).Assembly)
.AddReferences(Assembly.GetExecutingAssembly())
.AddImports("System");
var script = CSharpScript.Create(code, scriptOptions);
var compilation = script.GetCompilation();
var assembly = compilation.Emit();
var type = assembly.GetType("MyNamespace.MyClass");
var instance = Activator.CreateInstance(type);
var method = type.GetMethod("MyMethod");
method.Invoke(instance, null);
}
}
```
这个示例将字符串中的C#代码编译为一个程序集并且通过反射创建类实例并执行其中的方法。请注意,你需要在运行时提供所需的引用和导入语句,以便编译器能够正确编译代码。
阅读全文