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: , ,
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google+ photo

You are commenting using your Google+ account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

w

Connecting to %s