我正在使用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事件没有被explicetly通过。我希望是这样的:
a.AssemblyResolve += new ResolveEventHandler(HandleIt(aSender,someArgs));
所以,是的,我只是希望能够将它添加到我的AssemblyResolve事件时,另外一个参数发送给我的HandleIt功能。
希望有道理,谢谢。
附录:
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){
}
航班吗
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){
}
你不需要的,如果(aBool)在lambda版本,你可以简单地say'a.AssemblyResolve + =(对象S,ResolveEventArgs一)= >拉手(S,A,aBool);'或曾经的说法应该是什么 – 2011-06-26 14:01:17