nelle applicazioni .NET, di solito gli eventi sono cablati in questo modo:Come convertire EventArgs durante il cablaggio degli eventi?
public event EventHandler<ChangeEventArgs> OnChange
{
add { _dependency.OnChange += value; }
remove { _dependency.OnChange -= value; }
}
Tuttavia questo funziona solo se gli eventi che si cablati hanno lo stesso gestore di eventi. Nel mio caso attuale, l'evento originale args è proprietario di una libreria e non voglio esporlo al codice client. Quindi ho una sorta di adattatore (ChangeEventArgs). Come posso usare il codice sopra per convertire gli argomenti degli eventi? Immagino qualcosa di simile al di sotto (ma al di sotto codice non funziona)
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)); }
}
Se non ho capito male la domanda si potrebbe scrivere un wrapper per l'evento che attiva il evento, analizza gli argomenti dell'evento restituito e restituisce quelli alla dll chiamante. – Gabber