コード例 #1
0
        public static IServiceProvider AddAutofacContainer(this IServiceCollection services, ContainerOptions settings, Action <Autofac.IContainer> action)
        {
            var installer = new ContainerInstaller(settings);

            var builder = installer.Install();

            builder.Populate(services);

            var appContainer = builder.Build();

            action(appContainer);

            return(new AutofacServiceProvider(appContainer));
        }
コード例 #2
0
ファイル: Program.cs プロジェクト: catonice/kudocode
        private static void Go(string request, string entity, string bond, string preFix,
                               Dictionary <string, bool> runGenerators)
        {
            var settings = new RequestResponsePairSettings()
            {
                ProjectFolder = @"C:\Projects\KudoCode.ProjectWate\",
                Folder        = $"{entity}s",
                Response      = $"{request}{entity}Response",
                Bound         = bond,         //In or Out
                Prefix        = preFix,
                Entity        = entity,
                Request       = request,
            };

            CodeGenSettingsModule.Parameters = new List <string>()
            {
                $"<%request%>:{settings.Request}",
                $"<%entity%>:{settings.Entity}",
                $"<%response%>:{settings.Response}",
                $"<%folder%>:{settings.Folder}",
            };


            CodeGenSettingsModule.Settings = settings;
            ApplicationContext.Container   = ContainerInstaller.BuildContainer();

            foreach (var generator in runGenerators)
            {
                try
                {
                    if (!generator.Value)
                    {
                        continue;
                    }

                    var x = ApplicationContext.Container
                            .ResolveNamed <IGenSettings>(generator.Key);
                    ApplicationContext.Container
                    .Resolve <IGenerate>().Generate(x);
                }
                catch (Exception e)
                {
                    Console.WriteLine(e);
                    throw;
                }
            }
        }
コード例 #3
0
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddControllers();

            // Grab the configuration as an object
            services.Configure <ContainerOptions>(Configuration);
            var containerOptions = Configuration.Get <ContainerOptions>();

            // Install the container, using our configuration
            var installer = new ContainerInstaller(containerOptions);
            var builder   = installer.Install();

            // Pull the .net core dependencies into the container, like controllers
            builder.Populate(services);

            // Overwrite the unitity service provider with autofac
            return(new AutofacServiceProvider(builder.Build()));
        }
コード例 #4
0
        /// <summary>
        /// Configures the services.
        /// </summary>
        /// <param name="services">The services.</param>
        /// <returns></returns>
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddOptions();
            services.Configure <ContainerOptions>(Configuration);
            var settings = Configuration.Get <ContainerOptions>();

            services
            .AddMvc(mvcOptions =>
            {
                mvcOptions.Filters.Add(new ModelstateValidationFilter());
                mvcOptions.Filters.Add(new HandledResultFilter());
            })
            .AddJsonOptions(jsonOptions =>
            {
                jsonOptions.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
            });

            var corsBuilder = new CorsPolicyBuilder();

            //corsBuilder.AllowAnyHeader();
            //corsBuilder.AllowAnyMethod();
            //corsBuilder.AllowAnyOrigin();
            //corsBuilder.AllowCredentials();
            corsBuilder.WithOrigins(settings.CORS.Origins);
            services.AddCors(opts => { opts.AddPolicy(settings.CORS.PolicyName, corsBuilder.Build()); });

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Title = "ScaffoldCore", Version = "v1"
                });
            });

            var installer = new ContainerInstaller(settings);
            var builder   = installer.Install();

            builder.Populate(services);
            ApplicationContainer = builder.Build();

            return(new AutofacServiceProvider(ApplicationContainer));
        }
コード例 #5
0
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddOptions();
            services.Configure <ContainerOptions>(Configuration);
            var settings = Configuration.Get <ContainerOptions>();

            services
            .AddMvc()
            .AddJsonOptions(jsonOptions =>
            {
                jsonOptions.SerializerSettings.ContractResolver = new Newtonsoft.Json.Serialization.CamelCasePropertyNamesContractResolver();
            });

            var corsBuilder = new CorsPolicyBuilder();

            corsBuilder.AllowAnyHeader();
            corsBuilder.AllowAnyMethod();
            corsBuilder.AllowAnyOrigin();
            corsBuilder.WithOrigins(GetConfigArray("CORS:Origins").ToArray());
            corsBuilder.AllowCredentials();
            services.AddCors(opts => { opts.AddPolicy("DefaultCorsPolicy", corsBuilder.Build()); });

            services.AddSwaggerGen(c =>
            {
                c.SwaggerDoc("v1", new Info {
                    Title = "ePixelation.Scaffold", Version = "v1"
                });
            });

            // *********************************************
            // INSTALL THE CONTAINER
            // *********************************************
            var installer = new ContainerInstaller(settings);
            var builder   = installer.Install();

            builder.Populate(services);
            ApplicationContainer = builder.Build();

            return(new AutofacServiceProvider(ApplicationContainer));
        }
コード例 #6
0
        private static void ConfigureContainer(HttpConfiguration config)
        {
            var container = ContainerInstaller.Init();

            config.DependencyResolver = new WindsorHttpDependencyResolver(container);
        }
コード例 #7
0
        public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services.AddMvc(options =>
            {
                options.ReturnHttpNotAcceptable = true;
                options.OutputFormatters.RemoveType <HttpNoContentOutputFormatter>();
                options.InputFormatters.Add(new XmlSerializerInputFormatter(new MvcOptions()));
                options.OutputFormatters.Add(new XmlSerializerOutputFormatter());
                options.FormatterMappings.SetMediaTypeMappingForFormat("xml", "application/xml");
            });
            services.AddControllers();
            #region Health Checks
            services.AddHealthChecks();
            services.AddHealthChecksUI().AddInMemoryStorage();
            #endregion
            #region Identity Server Config
            IdentityServerSettings identityServerSettings = new IdentityServerSettings();
            Configuration.GetSection("IdentityServerSettings").Bind(identityServerSettings);
            services.AddAuthentication("Bearer")
            .AddIdentityServerAuthentication("Bearer", options =>
            {
                options.ApiName   = identityServerSettings.ApiName;
                options.Authority = identityServerSettings.Authority;
            });
            #endregion
            #region Swagger Config
            SwaggerGenSettings swaggerGenSettings = new SwaggerGenSettings();
            Configuration.GetSection("SwaggerGenSettings").Bind(swaggerGenSettings);
            services.AddSwaggerGen(options =>
            {
                options.SwaggerDoc(swaggerGenSettings.SwaggerDoc.name, swaggerGenSettings.SwaggerDoc.OpenApiInfo);
                SecurityDefinition securityDefinition = swaggerGenSettings.SecurityDefinition;
                Settings.Swagger.AuthorizationCode authorizationCode = securityDefinition.OpenApiSecurityScheme.AuthorizationCode;
                options.AddSecurityDefinition(securityDefinition.name, new OpenApiSecurityScheme
                {
                    Type  = securityDefinition.OpenApiSecurityScheme.SecuritySchemeType,
                    Flows = new OpenApiOAuthFlows
                    {
                        AuthorizationCode = new OpenApiOAuthFlow
                        {
                            AuthorizationUrl = new Uri(authorizationCode.AuthorizationUrl),
                            TokenUrl         = new Uri(authorizationCode.TokenUrl),
                            Scopes           = authorizationCode.Scopes
                        }
                    }
                });
                options.OperationFilter <AuthorizeCheckOperationFilter>();
            });
            #endregion
            #region Autofac Composition root
            // Install the container, using our configuration
            ContainerInstaller installer = new ContainerInstaller();
            ContainerBuilder   builder   = installer.Install();

            // Pull the .net core dependencies into the container, like controllers
            builder.Populate(services);

            IContainer container = builder.Build();
            #endregion
            // return the IServiceProvider implementation
            return(new AutofacServiceProvider(container));
        }