Click here to Skip to main content
15,124,736 members
Articles / Programming Languages / C#
Posted 23 Jan 2011

Tagged as


4 bookmarked

Basic Events Out Of The Box

Rate me:
Please Sign up or sign in to vote.
2.50/5 (2 votes)
25 Jan 2011CPOL2 min read
Use simple events the same way you call a method


When working on one on my recent projects, I needed to fire an event that contains a message. I've looked for any EventArgs that contain a string property to be used as a message container, but I didn't find anything simple. So, I decided to create a set of EventArgs that contains properties I need for almost every project and put them in a separate library, so it can be reused. Then I got the idea, why not declare the event itself and its firing method in that library to be able to fire the events from my project the same way I call a method. That's the idea behind Basic Events project, out of the box usage of events containing common properties.

The Attached Code

The attached code contains a solution with the following projects:

  • BasicEvents: The main library that contains the EventArgs classes and the Events class with events defined.
  • DMO_BLL: A business tier class to demo BasicEvents library.
  • DMO_EXE: A console application that uses the DMO_BLL class.

Using the Code

In your class that you wish to fire the event

Declare private or protected attribute of Events class.

private BasicEvents.Events _events = new BasicEvents.Events();

Declare a public read only property to return the Events class instance that all the events will be fired from.

public BasicEvents.Events Events
return _events;

Where you want to fire one of the basic events, just call the related method:

_events.FireMessageReceived(this, "Demo");

Fire events methods:

  • FireMessageReceived: fires MessageReceived event.
  • FireTimeMessageReceived: fires TimeMessageReceived event.
  • FireExceptionReceived: fires ExceptionReceived event.

In your presentation tier, or the class where you intend to handle the events fired:

Provided that you make instance of the business tier library:

DMO_BLL.DMO _dmo = new DMO_BLL.DMO();

Register the event handlers:

_dmo.Events.MessageReceived += 
	new BasicEvents.Events.MessageReception(Events_MessageReceived);   

Create the Events_MessageReceived method:

void Events_MessageReceived(object sender, BasicEvents.MessageEventArgs e)

Run the business method in the business tier library:



The source code can be viewed under by clicking here.


This article, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)


About the Author

George Nairooze
Team Leader Link Development
Egypt Egypt
No Biography provided

Comments and Discussions

General[My vote of 1] Better solutions Pin
JP van Mackelenbergh25-Jan-11 22:06
MemberJP van Mackelenbergh25-Jan-11 22:06 
GeneralI think a much better way would be to use Mediator pattern and WeakEvent subscription Pin
Sacha Barber25-Jan-11 1:00
mvaSacha Barber25-Jan-11 1:00 
GeneralMore like a tip/trick Pin
Slacker00724-Jan-11 2:30
professionalSlacker00724-Jan-11 2:30 
GeneralWhy not use Generic EventArgs instead, TData could be any type u wish to embed into event args Pin
pagal_punnu23-Jan-11 15:42
Memberpagal_punnu23-Jan-11 15:42 
GeneralRe: Why not use Generic EventArgs instead, TData could be any type u wish to embed into event args Pin
George Nairooze25-Jan-11 0:09
MemberGeorge Nairooze25-Jan-11 0:09 
GeneralRe: Why not use Generic EventArgs instead, TData could be any type u wish to embed into event args Pin
KenJohnson26-Jan-11 0:36
MemberKenJohnson26-Jan-11 0:36 
I almost always use something like that.

Ken Johnson

Latest article WPF Color Picker Construction Kit

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.