/// <inheritdoc/>
        public ICopyHelperRegistration <T> RegisterPostProcessing <TPostProcessing>()
            where TPostProcessing : IBaseAdditionalProcessing
        {
            var postProcessing = IocHandler.Instance.IocResolver.GetInstance <TPostProcessing>();

            var list = new Collection <IBaseAdditionalProcessing>()
            {
                postProcessing,
            };

            var copyOperationPostProcessings = new CopyOperationPostProcessing <T>();

            copyOperationPostProcessings.Initialize(list);
            this.registeredStrategies.Add(copyOperationPostProcessings);

            return(this);
        }
        /// <inheritdoc/>
        public ICopyHelperRegistration <T> RegisterPostProcessings(IBaseAdditionalProcessing additionalProcessing, params IBaseAdditionalProcessing[] furtherAdditionalProcessings)
        {
            additionalProcessing.NotNull(nameof(additionalProcessing));

            var list = new Collection <IBaseAdditionalProcessing>()
            {
                additionalProcessing,
            };

            if (furtherAdditionalProcessings != null)
            {
                list.AddRangeToMe(furtherAdditionalProcessings);
            }

            var copyOperationPostProcessings = new CopyOperationPostProcessing <T>();

            copyOperationPostProcessings.Initialize(list);
            this.registeredStrategies.Add(copyOperationPostProcessings);
            return(this);
        }