using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.Mvc; using Spring.Context; using Spring.Context.Support; using Spring.Objects; using Spring.Objects.Factory; using System.Collections; using log4net; namespace Sleis.Infrastructure { public class CustomServiceResolver : IDependencyResolver { private readonly ILog _log = LogManager.GetLogger(typeof(SpringServiceProvider)); private readonly IDependencyResolver _resolver; private readonly SpringControllerActivator _controllerActicator; public CustomServiceResolver(IDependencyResolver defaultResolver) { _resolver = defaultResolver; _controllerActicator = new SpringControllerActivator(); } public object GetService(Type serviceType) { _log.DebugFormat("GetService({0})", serviceType); object result = null; if (serviceType == typeof(IControllerActivator)) { result = _controllerActicator; } else { result = _resolver.GetService(serviceType); } _log.DebugFormat("Result: {0}", result); return result; } public IEnumerable GetServices(Type serviceType) { _log.DebugFormat("GetServices({0})", serviceType); IEnumerable results = _resolver.GetServices(serviceType); _log.DebugFormat("Result: {0}", results); return results; } } }