编译时由CSharpCodeProvider编译错误
问题描述:
我在这里有点新,这是我的第一个问题。所以,请不要在我愤怒的时候我上来了问题(:编译时由CSharpCodeProvider编译错误
我的问题:我试图编译运行一个C#源代码,使用CSharpCodeProvider
它编译没有任何问题,除非我改变CompilerVersion为“2.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。
如果我错了,请不要在我愤怒:)
非常感谢您的帮助!(: 它的工作原理与匿名委托 – PeterPan
感谢你:)高兴它的工作! –