ディープコピーをしたい次のクラスがあります。
public class KeyInfo
{
public KeyInfo(IKeySetup keySetup, IKeyData data)
{
KeySetup = keySetup;
Data = data;
}
public IKeySetup KeySetup { get; set; }
public IKeyData Data { get; set; }
public KeyInfo DeepCopy()
{
var keyInfo = (KeyInfo) this.MemberwiseClone();
return keyInfo;
}
}
インターフェイスをコピーするにはどうすればよいですか?インターフェイスにICloneableを実装してから、それらのインターフェイスの1つを持つすべてのクラスにClone()を実装させる必要がありますか?各クラスがそのような関数を実装する必要を回避する方法はありますか?