/// <summary>
        /// Return a <see cref="IDependencyResolverPolicy"/> that can be used to give a value
        /// for the given desired dependency.
        /// </summary>
        /// <param name="context">Current build context.</param>
        /// <param name="dependencyType">Type of dependency desired.</param>
        /// <returns>a <see cref="IDependencyResolverPolicy"/> object if this override applies, null if not.</returns>
        public override IDependencyResolverPolicy GetResolver(IBuilderContext context, Type dependencyType)
        {
            IDependencyResolverPolicy result = null;

            if (dependencyType == typeToConstruct)
            {
                result = dependencyValue.GetResolverPolicy(dependencyType);
            }
            return(result);
        }
        /// <summary>
        /// Return a <see cref="IDependencyResolverPolicy"/> that can be used to give a value
        /// for the given desired dependency.
        /// </summary>
        /// <param name="context">Current build context.</param>
        /// <param name="dependencyType">Type of dependency desired.</param>
        /// <returns>a <see cref="IDependencyResolverPolicy"/> object if this override applies, null if not.</returns>
        public override IDependencyResolverPolicy GetResolver(IBuilderContext context, Type dependencyType)
        {
            Guard.ArgumentNotNull(context, "context");
            var currentOperation = context.CurrentOperation as ResolvingPropertyValueOperation;

            if (currentOperation != null &&
                currentOperation.PropertyName == propertyName)
            {
                return(propertyValue.GetResolverPolicy(dependencyType));
            }
            return(null);
        }
        /// <summary>
        /// Return a <see cref="IDependencyResolverPolicy"/> that can be used to give a value
        /// for the given desired dependency.
        /// </summary>
        /// <param name="context">Current build context.</param>
        /// <param name="dependencyType">Type of dependency desired.</param>
        /// <returns>a <see cref="IDependencyResolverPolicy"/> object if this override applies, null if not.</returns>
        public override IDependencyResolverPolicy GetResolver(IBuilderContext context, Type dependencyType)
        {
            Guard.ArgumentNotNull(context, "context");

            var currentOperation = context.CurrentOperation as ConstructorArgumentResolveOperation;

            if (currentOperation != null &&
                currentOperation.ParameterName == parameterName)
            {
                return(parameterValue.GetResolverPolicy(dependencyType));
            }

            return(null);
        }