Esempio n. 1
0
        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();
        }
Esempio n. 2
0
        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.
        }
Esempio n. 3
0
        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);
        }
Esempio n. 4
0
        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();
        }