/// <summary> /// 添加Rye框架对数据库访问层的支持 /// </summary> /// <param name="services"></param> /// <param name="action"></param> /// <returns></returns> public static IServiceCollection AddDataAccessModule(this IServiceCollection services, Action <DbConnectionMapOptions> action = null) { var module = new DataAccessModule(action); services.AddModule <DataAccessModule>(module); return(services); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(IServiceCollection services) { services.AddCors(options => { options.AddPolicy("AllowAll", builder => { builder .AllowAnyOrigin() .AllowAnyMethod() .AllowAnyHeader() .AllowCredentials(); }); }); services.AddMvc() .SetCompatibilityVersion(CompatibilityVersion.Version_2_1) .AddJsonOptions( options => options.SerializerSettings.ReferenceLoopHandling = Newtonsoft.Json.ReferenceLoopHandling.Ignore ); services.AddHttpContextAccessor(); services.AddScoped <ICurrentUserProvider, CurrentUser>(); services.AddScoped <IChessGame, ChessGame>(); services.AddFirebaseAuthentication(Configuration.GetValue <string>("Firebase:ProjectId")); BuisinessLogicModule.ConfigureServices(services, Configuration); DataAccessModule.ConfigureServices(services, Configuration); CommonModule.ConfigureServices(services, Configuration); }
protected void Application_Start() { AreaRegistration.RegisterAllAreas(); RouteConfig.RegisterRoutes(RouteTable.Routes); BundleConfig.RegisterBundles(BundleTable.Bundles); NinjectModule dataAccessModule = new DataAccessModule(); NinjectModule businessLogicModule = new BusinessLogicModule(); IKernel kernel = new StandardKernel(dataAccessModule, businessLogicModule); DependencyResolver.SetResolver(new NinjectDependencyResolver(kernel)); }
// This method gets called by the runtime. Use this method to configure the HTTP request pipeline. public void Configure(IApplicationBuilder app, IHostingEnvironment env) { //if (env.IsDevelopment()) //{ app.UseDeveloperExceptionPage(); //} BusinessLogicModule.ConfigureMiddleware(app); CommonModule.ConfigureMiddleware(app); CoreModule.ConfigureMiddleware(app); DataAccessModule.ConfigureMiddleware(app); // if (env.IsDevelopment()) // { app.UseCors("AllowAll"); // } app.UseAuthentication(); app.UseMvc(); if (Configuration.GetValue <bool>("UseLocalSignalR")) { app.UseSignalR(options => { options.MapHub <WorkspaceHub>("/workspaceHub"); options.MapHub <ChatHub>("/chatHub"); options.MapHub <NavigationHub>("/navigationHub"); }); } else { app.UseAzureSignalR(options => { options.MapHub <WorkspaceHub>("/workspaceHub"); options.MapHub <ChatHub>("/chatHub"); options.MapHub <NavigationHub>("/navigationHub"); }); } }
private static void DIConfiguration(IAppBuilder app) { var mvcContainer = new Container(); var apiContainer = new Container(); mvcContainer.Options.DefaultScopedLifestyle = new WebRequestLifestyle(); apiContainer.Options.DefaultScopedLifestyle = new AsyncScopedLifestyle(); DataAccessModule.Load(mvcContainer); DataAccessModule.Load(apiContainer); ApplicationModule.Load(mvcContainer); ApplicationModule.Load(apiContainer); mvcContainer.RegisterMvcControllers(Assembly.GetExecutingAssembly()); apiContainer.RegisterWebApiControllers(GlobalConfiguration.Configuration); mvcContainer.Verify(); apiContainer.Verify(); DependencyResolver.SetResolver(new SimpleInjectorDependencyResolver(mvcContainer)); GlobalConfiguration.Configuration.DependencyResolver = new SimpleInjectorWebApiDependencyResolver(apiContainer); }