2つのインターフェイスとその派生コンクリートクラスを作成する必要があります。あなたのサービスは、IObservable、IObserver、ApplicationErrorStateを作成します。
クライアントはクラスを作成し、IObserverからErrorMessageSyncを取得します。
エラーを表示し、.Net 3.5で作成された私の例です。
P.S.また、これは、このアプローチのためのUMLでの代表
/// It will store observers and will push the message
public interface IErrorObservable
{
void Attach(IErrorObserver observer);
void Detach(IErrorObserver observer);
void Notify();
}
public interface IErrorObserver
{
void Update(string message);
}
///It is concrete class to push message
public sealed class ApplicationErrorState : IErrorObservable
{
private List<IErrorObserver> _observers = new List<IErrorObserver>();
///constructor
public ApplicationErrorState()
{
}
public void Attach(IErrorObserver observer)
{
_observers.Add(observer);
}
public void Detach(IErrorObserver observer)
{
_observers.Remove(observer);
}
public void Notify()
{
foreach (IErrorObserver observer in _observers)
{
observer.Update(/*Logic*/);
}
}
public void SetError()
{
Notify();
}
///COncrete subject
private class ErrorMessageSync : IErrorObserver
{
private MyClass _parent;
public ErrorMessageSync(MyClass parent)
{
_parent = parent;
}
public void Update(string message)
{
//This work will be done
}
}
を使用することができます。

* 'オブザーバ設計Pattern'は(原因、それは.NET 4.0以上であることだし)動作しません。私は、.NET 1.1で動作するように持っているとき、私は' Singleton'パターン以来、それを嫌います* .NET 2.0 –
までは設計されていませんでした。 "Observer Design Patternは動作しません(.NET 4.0以降)。" - 傑作LOL – dzendras