En aplicaciones .NET, normalmente eventos están conectados de esta manera:Cómo convertir EventArgs cuando se cablean eventos?
public event EventHandler<ChangeEventArgs> OnChange
{
add { _dependency.OnChange += value; }
remove { _dependency.OnChange -= value; }
}
Sin embargo, esto sólo funciona si los eventos están cableados tienen el mismo controlador de eventos. En mi caso actual, el evento original args es propiedad de una biblioteca, y no quiero exponerlo al código del cliente. Entonces tengo algún tipo de adaptador (ChangeEventArgs). ¿Cómo puedo usar el código de arriba para convertir los argumentos del evento? Me imagino algo parecido a continuación (pero por debajo de código no funciona)
public event EventHandler<ChangeEventArgs> OnChange
{
add { _dependency.OnChange += Convert(value); }
remove { _dependency.OnChange -= Convert(value); }
}
o
public event EventHandler<ChangeEventArgs> OnChange
{
add { _dependency.OnChange += value(this, Convert(args)); }
remove { _dependency.OnChange -= value(this, Convert(args)); }
}
Si no lo entienden mal la pregunta se podría escribir un contenedor para el evento que desencadena la evento, analiza los argumentos de evento devueltos y los devuelve a la DLL de llamada. – Gabber