public void TransferTo(object input)
        {
            if (input == null)
            {
                throw new ArgumentNullException("input");
            }

            _request.SetObject(input);

            IActionBehavior partial = _factory.BuildPartial(input.GetType());

            partial.InvokePartial();
        }
        public Task TransferTo(object input, string categoryOrHttpMethod = null)
        {
            if (input == null)
            {
                throw new ArgumentNullException(nameof(input));
            }

            _request.SetObject(input);

            var chain = _resolver.FindUnique(input, categoryOrHttpMethod);

            var partial = _factory.BuildBehavior(chain);

            return(partial.InvokePartial());
        }