public static void Bootstrap(IServiceCollection services) { var typeResolver = new TypeResolver("WebApiHost", "ExampleApi", "NetFusion.*", "NetFusion.*.*"); var configuration = CreateConfiguration(); var loggerFactory = CreateLoggerFactory(configuration); AppContainer.Create(typeResolver) .WithConfig((EnvironmentConfig envConfig) => { envConfig.UseConfiguration(configuration); }) .WithConfig((MessagingConfig config) => { // Only required if client will be publishing events. config.AddMessagePublisher <RabbitMqMessagePublisher>(); // Add additional enrichers or clear existing then add specific enrichers. }) .WithConfig((LoggerConfig config) => { config.UseLoggerFactory(loggerFactory); config.LogExceptions = true; }) .WithConfig((WebMvcConfig config) => { config.EnableRouteMetadata = true; config.UseServices(services); }) .WithConfig((AutofacRegistrationConfig config) => { config.Build = builder => { builder.Populate(services); builder.RegisterType <NullEntityScriptingService>() .As <IEntityScriptingService>() .SingleInstance(); builder.RegisterType <BrokerMetaRepository>() .As <IBrokerMetaRepository>() .SingleInstance(); }; }) .Build() .Start(); }
public static void Bootstrap( IConfiguration configuration, ILoggerFactory loggerFactory, IServiceCollection services) { // Creates an instance of a type resolver that will look for plug-ins within // the assemblies matching the passed patterns. The implementation delegates // to the .NET core classes used to discover/probe for assemblies. var typeResolver = new TypeResolver( "Boondocks.Device.WebApi", "Boondocks.Device.*", "Boondocks.Base.*"); // The following configures the NetFusion AppContainer. AppContainer.Create(typeResolver) .WithConfig(configInit: (EnvironmentConfig envConfig) => { // Tell NetFusion to use this configuration setup. envConfig.UseConfiguration(configuration); }) .WithConfig((LoggerConfig config) => { // Tell NetFusion to use this logging setup. config.UseLoggerFactory(loggerFactory); // If there is an exception, the AppContainer will log it. // If false, it is the responsibility of the bootstrap code to log the exception. config.LogExceptions = true; }) .WithConfig((AutofacRegistrationConfig config) => { config.Build = builder => { builder.RegisterInstance(new SqlServerDbConnectionFactory()) .As <IDbConnectionFactory>(); // This method is Autofac and it is registering any services contained // with the services collection added by ASP.NET (i.e. controllers). builder.Populate(services); }; }) .WithConfig((WebMvcConfig config) => { config.EnableRouteMetadata = true; config.UseServices(services); }) .Build() // Discover all plug-ins and build the DI Container. .Start(); // Visit each plug-in and allow it to execute any code needed at start of application. }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); var builder = AppContainer.Create(); WebBootstrapper.InitializeProduction(builder); builder.RegisterApiControllers(Assembly.GetExecutingAssembly()); AppContainer.Factory = builder.Build(); AppConfiguration.Factory = AppContainer.Current.Resolve <IAppConfigurationService>(); var loggerBuilder = new ContainerBuilder(); loggerBuilder.RegisterModule(new LoggerContainer()); AppContainer.UpdateContainer(loggerBuilder); GlobalConfiguration.Configuration.DependencyResolver = new AutofacWebApiDependencyResolver(AppContainer.Current); GlobalConfiguration.Configure(WebApiConfig.Register); FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); }
public static void Main(string[] args) { var typeResolver = new TypeResolver("ConsumerHost", "ConsumerHost", "ExampleApi"); var configuration = CreateConfiguration(); var loggerFactory = CreateLoggerFactory(configuration); AppContainer.Create(typeResolver) .WithConfig((EnvironmentConfig envConfig) => { envConfig.UseConfiguration(configuration); }) .WithConfig((MessagingConfig config) => { // Only required if client will be publishing events. config.AddMessagePublisher <RabbitMqMessagePublisher>(); }) .WithConfig((LoggerConfig config) => { config.UseLoggerFactory(loggerFactory); config.LogExceptions = true; }) .WithConfig((AutofacRegistrationConfig config) => { config.Build = builder => { builder.RegisterType <NullEntityScriptingService>() .As <IEntityScriptingService>() .SingleInstance(); builder.RegisterType <BrokerMetaRepository>() .As <IBrokerMetaRepository>() .SingleInstance(); }; }) .Build() .Start(); }