public object Resolve(
            CreationContext context,
            ISubDependencyResolver parentResolver,
            ComponentModel model,
            DependencyModel dependency)
        {
            MockingStrategy strategy = _relatedRepository.GetStrategyFor(dependency);

            if (strategy.Instance != null)
            {
                return(strategy.Instance);
            }
            if (strategy.Mock == MockingStrategyType.Mock)
            {
                //if a dependencywas already registered in the main controller, go and use it
                var    registration = this._relatedRepository.Kernel.GetHandler(dependency.TargetType);
                object resolvedDependencyObject;
                if (registration == null)
                {
                    resolvedDependencyObject = MockRepository.GenerateStub(dependency.TargetType);
                }
                else
                {
                    resolvedDependencyObject = _relatedRepository.Resolve(dependency.TargetType);
                }
                _relatedRepository.OnMockCreated(resolvedDependencyObject, dependency.DependencyKey);
                return(resolvedDependencyObject);
            }
            if (strategy.Mock == MockingStrategyType.Resolve)
            {
                return(_relatedRepository.Resolve(dependency.TargetType));
            }

            return(null);
        }