Click here to Skip to main content
15,355,608 members
Articles / Programming Languages / C#
Posted 10 Aug 2012

Tagged as


20 bookmarked

C# NotificationCenter

Rate me:
Please Sign up or sign in to vote.
4.50/5 (6 votes)
10 Aug 2012CPOL2 min read
A NotificationCenterManager object (or simply, notification center) provides a mechanism for broadcasting information within a program.


A NotificationCenterManager object (or simply, notification center) provides a mechanism for broadcasting information within a program. A NotificationCenterManager object is essentially a notification dispatch table.

Objects register with a notification center to receive notifications (Notification objects) using the AddObserver method. Each invocation of this method specifies a set of notifications. Therefore, objects may register as observers of different notification sets by calling these methods several times.

Each running C# program has a default notification center. You typically don’t create your own. A NotificationCenterManager object can deliver notifications only within a single program.


There can be a few conflicting techniques to solve a problem. Any can be chosen to achieve your goal. However, sometimes I want to know what can fit better for this and that. One of those conflicting techniques are Events (using delegates) and Notification in a same process or a task. An Event is to have an object that fires an event when it's happened. Notification is to send an alarm to a monitoring object if something happens. For both, a monitoring object should be registered to some entities. So, mostly they are very similar.

But Notification is free form to be connected to another object. For example the mains form can send a notification to a User Control inside in another User Control without no connection between them.

Using the code

First of all create a NotificationCenterManager object. NotificationCenterManager uses the Singleton pattern so get an instance like his:

using NotificationCenter;
NotificationCenterManager notificationCenterManager = NotificationCenterManager.Instance;

Next use the NotificationCenterManager instance to register to Notification with the method AddObserver:

public class Observer
    public Observer()
        NotificationCenterManager notificationCenterManager = NotificationCenterManager.Instance;
           "SomeNotification");// register to Notification "SomeNotification".
    private void OnNotification(Notification p_notification)

Next use the NotificationCenterManager instance to post  a Notification with "Empty Message" with the method PostNotification:

NotificationCenterManager.Instance.PostNotification("SomeNotification ");
// Post Notification "SomeNotification".

Use the NotificationCenterManager instance to post a Notification with "Notification Message" with the method PostNotification:

Notification notification=new Notification(this,"Some Object With Message");
NotificationCenterManager.Instance.PostNotification("SomeNotification", notification);
// Post Notification "SomeNotification".

To remove matching entries from the receiver’s dispatch table use the NotificationCenterManager instance to unregister from Notification with the method RemoveObserver:

NotificationCenterManager.Instance.RemoveObserver(OnNotification, "SomeNotification");
// OnNotification is the delegate to the Observer.


10/08/12: Initial post.


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


About the Author

One Man Crew
Software Developer (Senior)
Israel Israel
Software Engineer with interest in .Net, C#, PHP ,Objective-c ,Java,JavaScript,HTML5

Programming since 1990(write my first QBasic program).
Web programming since 1995.
Started writing "hacks" at 14.
Build my First BBS at 14(through college BBSes) pre-'internet' at this point.
Assembly language "hacking" at 17.


Objective C

Currently studying Computer vision,Image processing .

Comments and Discussions

GeneralMy vote of 4 Pin
srfox4-Mar-16 9:31
professionalsrfox4-Mar-16 9:31 
QuestionError fire Notification Pin
Member 1069907211-Apr-14 14:48
MemberMember 1069907211-Apr-14 14:48 
AnswerRe: Error fire Notification Pin
One Man Crew19-Apr-14 9:07
MemberOne Man Crew19-Apr-14 9:07 
GeneralVery cool Pin
maxvale17-Dec-12 15:13
Membermaxvale17-Dec-12 15:13 
QuestioniOS NSNotificationCenter Pin
lauhw200014-Oct-12 18:02
Memberlauhw200014-Oct-12 18:02 
AnswerRe: iOS NSNotificationCenter Pin
One Man Crew15-Oct-12 3:39
MemberOne Man Crew15-Oct-12 3:39 
GeneralMy vote of 5 Pin
Dave Hickson11-Aug-12 21:28
MemberDave Hickson11-Aug-12 21:28 
GeneralRe: My vote of 5 Pin
One Man Crew11-Aug-12 21:36
MemberOne Man Crew11-Aug-12 21:36 
GeneralMy vote of 3 Pin
Klaus Luedenscheidt10-Aug-12 17:35
MemberKlaus Luedenscheidt10-Aug-12 17:35 
GeneralRe: My vote of 3 Pin
One Man Crew11-Aug-12 7:44
MemberOne Man Crew11-Aug-12 7:44 
GeneralRe: My vote of 3 Pin
Klaus Luedenscheidt11-Aug-12 18:02
MemberKlaus Luedenscheidt11-Aug-12 18:02 

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.