有一个代码:
private Assembly CurrentDomain_AssemblyResolve(object sender, ResolveEventArgs args)
{
try
{
//TODO: this lambda-expression starts infinite loop
return Plugins.Keys.First(x => x.FullName == args.Name);
/* this code works fine
foreach (Assembly xx in Plugins.Keys)
if (xx.FullName == args.Name) return xx;
return null;
*/
}
catch
{
return null;
}
}
这是怎么回事?或者可能是我在工作日结束时?:)
编辑: 代码没有例外。我运行了调试器,然后返回 Plugins.Keys.First(x => x.FullName == args.Name); 方法一次又一次地以 args.Name = "System.Core.resources bla bla bla" 开始。当我使用 foreach 语句方法成功返回并且没有循环时。这似乎是装配解决问题。