namespace Core.Common.Utils
{
///
/// See "Deep copy" section on http://en.wikipedia.org/wiki/Object_copy
/// TODO: agree to use ICloneable as a deep clone (how deep? :)) and remove it, we don't use shallow clone so we need only 1 type of clone
/// If more types of clone are needed - then it is not clone, but context-based: Import, TransformToOtherObject, etc. Then solve it at the place where this action is implemented
///
public interface IDeepCloneable
{
///
/// Gets a deep copy of the object and its relations
///
///The object graph
object DeepClone();
}
}