W aplikacji .NET, normalnie zdarzenia są podłączone w ten sposób:Jak konwertować EventArgs podczas zdarzeń okablowania?
public event EventHandler<ChangeEventArgs> OnChange
{
add { _dependency.OnChange += value; }
remove { _dependency.OnChange -= value; }
}
Jednak to działa tylko jeśli są okablowane wydarzenia mają taką samą procedurę obsługi zdarzenia. W moim obecnym przypadku oryginalna argumentacja zdarzenia jest własnością biblioteki i nie chcę tego ujawnić kodowi klienta. Więc mam jakiś adapter (ChangeEventArgs). Jak mogę użyć powyższego kodu do konwersji arg wydarzeń? Wyobrażam sobie, coś jak poniżej (ale poniżej kod nie działa)
public event EventHandler<ChangeEventArgs> OnChange
{
add { _dependency.OnChange += Convert(value); }
remove { _dependency.OnChange -= Convert(value); }
}
lub
public event EventHandler<ChangeEventArgs> OnChange
{
add { _dependency.OnChange += value(this, Convert(args)); }
remove { _dependency.OnChange -= value(this, Convert(args)); }
}
Gdybym nie rozumieją pytanie można napisać otoki dla zdarzenia, które wyzwala zdarzenie analizuje zwrócone zdarzenia i zwraca je do biblioteki wywołującej. – Gabber