/// <summary>
        /// Creates a copy of this value resolver injecting it with a specific collection
        /// of variables that can be used during resoltuion. Any previously wrapped variable sets
        /// should be discarded.
        /// </summary>
        /// <param name="variableData">The variable data.</param>
        /// <returns>IInputValueResolver.</returns>
        public override IInputValueResolver WithVariables(IResolvedVariableCollection variableData)
        {
            var resolver = new InputObjectResolver(this);

            resolver.VariableCollection = variableData;
            return(resolver);
        }
 /// <summary>
 /// Prevents a default instance of the <see cref="InputObjectResolver" /> class from being created.
 /// </summary>
 /// <param name="otherResolver">The other resolver to copy core data from.</param>
 private InputObjectResolver(InputObjectResolver otherResolver)
 {
     _graphType      = otherResolver._graphType;
     _objectType     = otherResolver._objectType;
     _propSetters    = otherResolver._propSetters;
     _fieldResolvers = otherResolver._fieldResolvers;
 }