我正在专门使用AssemblyResolve。这是我的代码,然后是我的问题:
var a = AppDomain.CurrentDomain;
a.AssemblyResolve += new ResolveEventHandler(HandleIt);
Private Assembly HandleIt(object sender, ResolveEventArgs args){
//Does stuff, returns an assembly
}
所以我将HandleIt添加到我的AssemblyResolve事件中。如何将它添加到该事件并传递一个参数,例如:
a.AssemblyResolve += new ResolveEventHandler(HandleIt(AnArgument));
这让我困惑了,因为HandleIt需要参数,但在将其添加到AssemblyResolve事件时没有明确传递任何参数。我期望看到像这样的内容:
a.AssemblyResolve += new ResolveEventHandler(HandleIt(aSender,someArgs));
嗯,我希望能够在将HandleIt函数添加到AssemblyResolve事件时,向其发送另一个参数。
希望这样说得清楚了,谢谢。
补充:
if(aBool){
a.AssemblyResolve += new ResolveEventHandler(HandleA);
}
else{
a.AssemblyResolve += new ResolveEventHandler(HandleB);
}
HandleA(object sender, ResolveEventArgs args){
Handle(true);
}
HandleB(object sender, ResolveEventArgs args){
Handle(false);
}
Handle(bool isA){
}
-vs-
if(aBool){
a.AssemblyResolve += (object s, ResolveEventArgs a) => Handle(s,a,true);
}
else{
a.AssemblyResolve += (object s, ResolveEventArgs a) => Handle(s,a,false);
}
Handle(object sender, ResolveEventArgs args, bool isA){
}
a.AssemblyResolve += (object s, ResolveEventArgs a) => Handle(s,a,aBool);
或者无论参数应该是什么。 - Rune FS