
This is the Title of the Book, eMatter Edition
Copyright © 2007 O’Reilly & Associates, Inc. All rights reserved.
502
|
Chapter 9: Delegates, Events, and Anonymous Methods
Discussion
Wrapping is a very useful technique with many different applications (proxies,
facades, etc.). However, if you use it, all classes in your application have to use the
Example 9-4. DirectoryInfoObserver class
public class DirectoryInfoObserver
{
public DirectoryInfoObserver( ) {}
public void Register(DirectoryInfoNotify dirInfo)
{
dirInfo.AfterCreate += new EventHandler(AfterCreateListener);
dirInfo.AfterCreateSubDir +=
new EventHandler(AfterCreateSubDirListener);
dirInfo.AfterMoveTo += new EventHandler(AfterMoveToListener);
dirInfo.AfterDelete += new EventHandler(AfterDeleteListener);
}
public void UnRegister(DirectoryInfoNotify dirInfo)
{
dirInfo.AfterCreate -= new EventHandler(AfterCreateListener);
dirInfo.AfterCreateSubDir -=
new EventHandler(AfterCreateSubDirListener);
dirInfo.AfterMoveTo -= new EventHandler(AfterMoveToListener);
dirInfo.AfterDelete -= new EventHandler(AfterDeleteListener);
}
public void AfterCreateListener(object sender, EventArgs e)
{
Console.WriteLine("Notified after creation of directory--sender: " +
((DirectoryInfoNotify)sender).FullName);
}
public void AfterCreateSubDirListener(object sender, EventArgs e)
{
Console.WriteLine("Notified after creation of SUB-directory--sender: " +
((DirectoryInfoNotify)sender).FullName); ...