イベントに NonSerialized 属性を付ける

イベントを含んだクラスをシリアル化しようとして、イベントはシリアル化いらねと思ったら、これが簡単にできなくて大変だった。

[NonSerialized]
public event EventHandler OnChanged;

素直にこう書いたら、「エラー CS0592: 属性 'NonSerialized' は、この種の宣言では無効です。'field' の宣言でのみ有効です。」と言われた。

あ〜でもないこ〜でもないといろいろ試した後、ネットで解決策発見。

http://piehead.livejournal.com/225258.html より引用。

[NonSerialized]
private EventHandler myEvent;
public event EventHandler MyEvent
{
    add { myEvent+= value; }
    remove { myEvent-= value; }
}

これでできた!なるほど。
でもこれ、C#を改善したほうがよくない?イベントをシリアル化することってある?