¿Enviar mis propios argumentos a un controlador de eventos?
Estoy trabajando con AssemblyResolve específicamente. Aquí está mi código primero, luego sigue mi pregunta:
var a = AppDomain.CurrentDomain;
a.AssemblyResolve += new ResolveEventHandler(HandleIt);
Private Assembly HandleIt(object sender, ResolveEventArgs args){
//Does stuff, returns an assembly
}
Así que agrego HandleIt a mi evento AssemblyResolve. ¿Cómo puedo agregarlo a ese evento y pasar un argumento con él como:
a.AssemblyResolve += new ResolveEventHandler(HandleIt(AnArgument));
Esto me desconcierta ya que HandleIt toma argumentos, pero ninguno se pasa explícitamente cuando se agrega al evento AssemblyResolve. Esperaría algo como:
a.AssemblyResolve += new ResolveEventHandler(HandleIt(aSender,someArgs));
Así que sí, solo quiero poder enviar otro argumento a mi función HandleIt cuando lo agregue a mi evento AssemblyResolve.
Espero que tenga sentido, gracias.
Apéndice
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){
}