public void Process(PipelineArgs args) { var serviceCollection = new ServiceCollection(); var container = new Container(); // container.Options.DefaultScopedLifestyle = new WebRequestLifestyle(); // start the pipeline to register all dependencies var dependencyInjectionArgs = new InitializeDependencyInjectionArgs(serviceCollection); CorePipeline.Run("initializeDependencyInjection", dependencyInjectionArgs); var containerCache = new List <Type>(); foreach (var serviceDescriptor in dependencyInjectionArgs.ServiceCollection) { // Safety check so we don't try to register the same type twice if (containerCache.Contains(serviceDescriptor.ServiceType)) { continue; } Lifestyle siScope; switch (serviceDescriptor.Lifetime) { case ServiceLifetime.Singleton: siScope = Lifestyle.Singleton; break; case ServiceLifetime.Transient: siScope = Lifestyle.Transient; break; case ServiceLifetime.Scoped: default: siScope = Lifestyle.Scoped; break; } container.Register(serviceDescriptor.ServiceType, serviceDescriptor.ImplementationType, siScope); containerCache.Add(serviceDescriptor.ServiceType); } // Register Mvc controllers var assemblies = AppDomain.CurrentDomain.GetAssemblies() .Where(a => a.FullName.StartsWith("HMPPS.Site")); container.RegisterMvcControllers(assemblies.ToArray()); // Register Mvc filter providers container.RegisterMvcIntegratedFilterProvider(); // Verify our registrations container.Verify(); // Set the ASP.NET dependency resolver DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(container)); }
public void Process(InitializeDependencyInjectionArgs args) { // List all services used by MVC controllers args.ServiceCollection.AddSingleton <ICacheService, CacheService>(); args.ServiceCollection.AddSingleton <ILogManager, SitecoreLogManager>(); args.ServiceCollection.AddTransient <INomisApiService, NomisApiService.Services.NomisApiService>(); args.ServiceCollection.AddTransient <IUserDataService, UserDataService>(); args.ServiceCollection.AddTransient <IEncryptionService, EncryptionService>(); args.ServiceCollection.AddTransient <IJwtTokenService, JwtTokenService>(); //args.ServiceCollection.AddMvcControllersInCurrentAssembly(); }