protected void Application_Start() { AreaRegistration.RegisterAllAreas(); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); WindsorContainerBuilder.BuildContainer(); }
public void Configuration(IAppBuilder appBuilder) { // install logging XmlConfigurator.Configure(); bool isValidConfig; try { EnsureAssembliesLoaded(); // configure container var containerBuilder = new WindsorContainerBuilder(); Container = containerBuilder.Build(); ConfigurationSpecificRegistration(); isValidConfig = true; } catch (Exception e) { // we swallow the container exceptions so we can still return a valid api with a status of 500. c.f. (ODS-3240) Logger.Warn("The container could not be built."); Logger.Error(e); isValidConfig = false; } appBuilder.SetLoggerFactory(new Log4NetLoggerFactory()); if (isValidConfig) { Logger.Info("Starting ODS/API with a valid container."); appBuilder .Use <RemoveServerHeaderMiddleware>() .UseWebApi(Container.Resolve <HttpConfiguration>()); // invoke any external tasks if they are installed foreach (var externalTask in Container.ResolveAll <IExternalTask>()) { Logger.Info($"Executing task {externalTask.GetType().Name}."); externalTask.Execute(); } } else { // Invalid windsor container Logger.Info("Starting ODS/API to redirect to a 500."); appBuilder .Use <InvalidWindsorContainerMiddleware>(); } Logger.Info("ODS/Api is running."); }
public static TestContext Get(Action <WindsorRegistrationOptions> configure = null, Func <IServiceProvider> serviceProviderFactory = null) { IServiceProvider serviceProvider = null; var serviceCollection = ServiceCollectionBuilder.New(); var container = WindsorContainerBuilder.New(serviceCollection, configure ?? (opts => opts.UseEntryAssembly(typeof(TestContextFactory).Assembly)), serviceProviderFactory ?? (() => serviceProvider = ServiceProviderBuilder.New(serviceCollection))); var applicationBuilder = ApplicationBuilder.New(serviceProvider); return(new TestContext(serviceCollection, serviceProvider, applicationBuilder, container, container.RequireScope())); }
public void CreateWindsorContainerBuilderResolver() { var apperCase = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; var classesToCreate = new List <string>(); for (var i = 0; i < apperCase.Length; i++) { for (var j = 0; j < firstInt; j++) { for (var k = 0; k < secondInt; k++) { var className = $"{apperCase[i]}{j}{k}"; classesToCreate.Add($"{className}Resolve"); } } } var nameSpace = "WindsorIoc"; var folderPath = $"/Users/yoavhagashi/Project/IOCTest/{nameSpace}"; var builder = new ClassBuilder(); var writer = new ClassWriter(); var windsorContainerBuilder = new WindsorContainerBuilder(); var constractorParams = new Dictionary <string, string>(); var usingInClass = new StringBuilder(); usingInClass.AppendLine("using Castle.Windsor;"); usingInClass.AppendLine("using Castle.MicroKernel.Registration;"); foreach (var className in classesToCreate) { var newClass = builder.Build("WindsorIoc", className, false, constractorParams, null, usingInClass.ToString()); var path = Path.Join(folderPath, "Classes", $"{className}.cs"); writer.Write(path, newClass); constractorParams.Add($"I{className}", className); windsorContainerBuilder.AddRegisteration($"I{className}", className); // windsorContainerBuilder.AddResolve($"I{className}"); if (constractorParams.Count >= maxConstructor) { constractorParams.Clear(); } } // windsorContainerBuilder.WithTimer(); var containerTestMethod = windsorContainerBuilder.Build(); var windsorContainerTestnewClass = builder.Build(nameSpace, "WindsorContainerTestResolve", true, null, new Dictionary <string, string> { { "TestContainer", containerTestMethod } }, windsorContainerBuilder.GetUsingSection()); var pathWindsorContainerTest = Path.Join(folderPath, $"WindsorContainerTestResolve.cs"); writer.Write(pathWindsorContainerTest, windsorContainerTestnewClass); }
protected override void Arrange() { AssemblyLoader.EnsureLoaded <Marker_EdFi_Ods_Standard>(); _systemUnderTest = new WindsorContainerBuilder(); }
public void SetUp() { Target = new WindsorContainerBuilder(); }