gpt4 book ai didi

c# - 通过 CSharpCodeProvider 编译时出现编译器错误

转载 作者:行者123 更新时间:2023-12-02 10:49:59 28 4
gpt4 key购买 nike

我在这里有点新,这是我的第一个问题。所以当我做错事时请不要对我发火(:

我的问题:我试图在运行时编译 C# 源代码,使用 CSharpCodeProvider .

除非我使用以下方法将 CompilerVersion 更改为“v2.0”,否则它可以毫无问题地编译:

Dictionary<string, string> provOptions = new Dictionary<string, string>();
provOptions.Add("CompilerVersion", "v2.0");

CSharpCodeProvider provider = new CSharpCodeProvider(provOptions);

它在第 15 行显示错误:
15: System.AppDomain.CurrentDomain.AssemblyResolve += (sender, args2) =>
16: {
17: byte[] assemblydata = Convert.FromBase64String(data);
18: return Assembly.Load(assemblydata);
19: };

例如:
Line 15, directly after "sender": ) expected

Line 15, directly after "sender": , invalid expression

还有一些。
我不知道问题出在哪里。当我使用 Visual Studio 时,它使用“v2.0”编译得很好

最佳答案

我不会说一些愚蠢的话,但是 lambda 表达式和 linq 是在 C# 3.0 中引入的,而不是在 C# 2.0 中。

而不是使用 += (sender, args2) =>为什么你不只使用匿名代表? C# 2.0 支持这一点。

System.AppDomain.CurrentDomain.AssemblyResolve += delegate (object sender, ResolveEventArgs args)
{
byte[] assemblydata = Convert.FromBase64String(data);
return Assembly.Load(assemblydata);
};

或者将编译器更改为 3.0 版本。

如果我错了请不要生我的气:)

关于c# - 通过 CSharpCodeProvider 编译时出现编译器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7949218/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com