しつもんですが、、
Q1. C#でクラスFooのディープコピ──メソッドを書く場合、次のどれが一番標準的で推奨?
 1. object.Clone()をoverrideして作る
 2. ディーコピーであることがわかるような名前のメソッド(例えばFoo DeepClone()とか)を作る
 3. コピーコンストラクタ Foo(Foo other)を作る
 4. その他(   )

Q2. C#でクラスFooのディープコピ─のしかたを教えてください
 1. Fooの個々のメンバについて代入文を書き並べる
 2. Fooをバイナリフォーマッタ─でメモリファイルとしてシリアライズしてデシリアライズする
 3. リフレクション?
 4. その他(   )

2.はらくちんなんだけど、全メンバとその子メンバ以下全てに[Serializable]が要るのがイヤンもっと良い方法無い?