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); }