Saját események WF activity-ben (kiegészítés)

Az előző hasonló című szösszenetből kimaradt egy dolog, így most ezzel a bejegyzéssel igyekszem leróni adósságomat: hogyan lehet elsütni egy olyan eseményt, ami saját EventArgs osztályt használ?

Az Activity osztálynak van egy RaiseEvent() metódusa, a legtöbb példában ezt találjuk. Ennél lényegesen szebb megoldás, ha a RaiseGenericEvent<T>() metódust használjuk:

protected internal void RaiseGenericEvent<T> (
  DependencyProperty dependencyEvent,
  Object sender,
  T e
) where T : EventArgs

Persze az MSDN (pardon, a Windows SDK, mert a .NET 3.0 dokumentációja persze külön van) nem sokat segít:

Type Parameters
T
The specified type.

Értsd: a T paraméterben kell megadni a saját EventArgs osztályból származtatott típus nevét, valahogy így:

protected override ActivityExecutionStatus Execute( ActivityExecutionContext aec )
{
  // …
  base.RaiseGenericEvent<WorkEventArgs>( MyActivity.OnWorkingEvent, this, new WorkArgs( … ) );
  // …
}

Na így már talán teljes a kép🙂

Technorati tags: , ,

Vélemény, hozzászólás?

Adatok megadása vagy bejelentkezés valamelyik ikonnal:

WordPress.com Logo

Hozzászólhat a WordPress.com felhasználói fiók használatával. Kilépés / Módosítás )

Twitter kép

Hozzászólhat a Twitter felhasználói fiók használatával. Kilépés / Módosítás )

Facebook kép

Hozzászólhat a Facebook felhasználói fiók használatával. Kilépés / Módosítás )

Google+ kép

Hozzászólhat a Google+ felhasználói fiók használatával. Kilépés / Módosítás )

Kapcsolódás: %s