使用Autofac 依赖注入及 swagger 之startup配置

言语有限,代码如下;

 public IServiceProvider ConfigureServices(IServiceCollection services)
        {
            services
               .AddCors()
               .AddMvc();
            JsonConvert.DefaultSettings = () => new JsonSerializerSettings
            {
                ContractResolver = new CamelCasePropertyNamesContractResolver()
            };

            //services.AddMvc().SetCompatibilityVersion(CompatibilityVersion.Version_2_1);
            services.AddSwaggerGen(option =>
            {
                option.SwaggerDoc("v1", new Info { Title = "My API", Version = "v1" });
                var xmlFile = $"{Assembly.GetExecutingAssembly().GetName().Name}.xml";
                var xmlPath = Path.Combine(AppContext.BaseDirectory, xmlFile);
                option.IncludeXmlComments(xmlPath);
            });
           
            var builder = new ContainerBuilder();
            //Register your own services within Autofac
            var selfServices = Assembly.Load("WuMing.Service");
            //Assembly.LoadFile(Path.Combine(HostingEnvironment.WebRootPath, "AUO.SmartCaring.Service.dll"));
            builder.RegisterAssemblyTypes(selfServices).AsImplementedInterfaces();
            var selfRepos_Repo = Assembly.Load("WuMing.Repository");
            //Assembly.LoadFile(Path.Combine(HostingEnvironment.WebRootPath, "AUO.SmartCaring.Repository.dll"));
            builder.RegisterAssemblyTypes(selfRepos_Repo).AsImplementedInterfaces();
            var selfEntity_Repo = Assembly.Load("WuMing.Entity");
            //Assembly.LoadFile(Path.Combine(HostingEnvironment.WebRootPath, "AUO.SmartCaring.Repository.dll"));
            builder.RegisterAssemblyTypes(selfEntity_Repo).AsImplementedInterfaces();
            var selfapi_Repo = Assembly.Load("WuMing.Interface");
            //Assembly.LoadFile(Path.Combine(HostingEnvironment.WebRootPath, "AUO.SmartCaring.Repository.dll"));
            builder.RegisterAssemblyTypes(selfapi_Repo).AsImplementedInterfaces();
            // //Put the framework services into Autofac
            builder.Populate(services);

            //Build and return the Autofac collection
            this.ApplicationContainer = builder.Build();

            return new AutofacServiceProvider(this.ApplicationContainer);

        }

  

public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            if (env.IsDevelopment())
            {
                app.UseDeveloperExceptionPage();
            }
            app.UseErrorHandling();
            app.UseSwagger();

            // Enable middleware to serve swagger-ui (HTML, JS, CSS, etc.), 
            // specifying the Swagger JSON endpoint.
            app.UseSwaggerUI(c =>
            {
                c.SwaggerEndpoint("/swagger/v1/swagger.json", "My API V1");
            });
            app.UseCors(builder =>
           builder
           .AllowAnyOrigin()
           .AllowAnyHeader()
           .AllowAnyMethod()
           );
            app.UseMvc();
        }

  

posted @ 2019-03-02 22:20  若水如引  阅读(703)  评论(0编辑  收藏  举报