AssemblyResolve没有使用匿名处理程序触发

时间:2017-11-23 10:07:03

标签: c# .net-assembly assemblyresolve

我正在尝试解析动态加载的程序集,但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方法中定义的变量的闭包之外,

resolveLoad实际上是相同的函数。

出于某种原因,this._AssemblyResolve被调用,但resolve没有。为什么呢?

我不能真正依赖_AssemblyResolve方法,因为该方法需要知道Load方法中定义的变量。我可以使用解决方法,但我仍然不明白为什么匿名函数不起作用。

0 个答案:

没有答案