Click here to Skip to main content
65,938 articles
CodeProject is changing. Read more.
Articles
(untagged)

Basic Events Out Of The Box

0.00/5 (No votes)
25 Jan 2011 1  
Use simple events the same way you call a method

Introduction

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
{
get
{
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)
{
Console.WriteLine(e.Message); 
}  

Run the business method in the business tier library:

_dmo.DemoMethod();  

Notes

The source code can be viewed under codeplex.com by clicking here.

License

This article has no explicit license attached to it but may contain usage terms in the article text or the download files themselves. If in doubt please contact the author via the discussion board below.

A list of licenses authors might use can be found here