我正在尝试解析动态加载的程序集,但AssemblyResolve事件似乎不适用于匿名函数。
private void Load() {
ResolveEventHandler resolve = (sender, args) => Assembly.LoadFile(pathToDependency);
AppDomain.CurrentDomain.AssemblyResolve += resolve;
AppDomain.CurrentDomain.AssemblyResolve += this._AssemblyResolve;
Assembly.LoadFile(pathToDll);
}
private void _AssemblyResolve(Object sender, ResolveEventArgs args) {
return Assembly.LoadFile(pathToDependency);
}
除了匿名this._AssemblyResolve
函数创建一个使用resolve
方法中定义的变量的闭包之外, resolve
和Load
实际上是相同的函数。
出于某种原因,this._AssemblyResolve
被调用,但resolve
没有。为什么呢?
我不能真正依赖_AssemblyResolve
方法,因为该方法需要知道Load
方法中定义的变量。我可以使用解决方法,但我仍然不明白为什么匿名函数不起作用。