using StructureHelperCommon.Infrastructures.Exceptions;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Reflection;
using System.Text;
using System.Threading.Tasks;
namespace StructureHelperCommon.Infrastructures.Interfaces
{
///
/// Creates deep copy of object by dictionary (if copy of object is not created it creates copy, otherwise take copy from dictionary)
///
public class DeepCloningStrategy : ICloningStrategy
{
private readonly Dictionary