// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) { services.AddOptions(); services.AddMvc(); services.AddCors(); services.AddOptions(); services.AddSingleton <IDictaatRepository, DictaatRepository>(); services.AddSingleton <IPageRepository, PageRepository>(); services.AddSingleton <IMenuRepository, MenuRepository>(); services.AddScoped <IQuestionRepository, QuestionRepository>(); services.AddSingleton <Core.IDirectory, Core.Directory>(); services.AddSingleton <Core.IFile, Core.File>(); services.Configure <ConfigVariables>(Configuration.GetSection("ConfigVariables")); var connection = @"Server = Stijn; Database = Webdictaat; Trusted_Connection = True; MultipleActiveResultSets=True"; services.AddDbContext <DomainContext>(options => options.UseSqlServer(connection), ServiceLifetime.Scoped); }
// This method gets called by the runtime. Use this method to add services to the container. public void ConfigureServices(Microsoft.Extensions.DependencyInjection.IServiceCollection services) { services.AddSingleton <Microsoft.AspNetCore.Http.IHttpContextAccessor, Microsoft.AspNetCore.Http.HttpContextAccessor>(); services.AddSingleton <SearchValueTransformer>(); MyBlogCore.SqlFactory fac = CreateAppropriateFactory(); services.AddSingleton <MyBlogCore.SqlFactory>(fac); // This method configures the MVC services for the commonly used features with controllers with views. // This combines the effects of Microsoft.Extensions.DependencyInjection.MvcCoreServiceCollectionExtensions.AddMvcCore(Microsoft.Extensions.DependencyInjection.IServiceCollection), // Microsoft.Extensions.DependencyInjection.MvcApiExplorerMvcCoreBuilderExtensions.AddApiExplorer(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder), // Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.AddAuthorization(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder), // Microsoft.Extensions.DependencyInjection.MvcCorsMvcCoreBuilderExtensions.AddCors(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder), // Microsoft.Extensions.DependencyInjection.MvcDataAnnotationsMvcCoreBuilderExtensions.AddDataAnnotations(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder), // Microsoft.Extensions.DependencyInjection.MvcCoreMvcCoreBuilderExtensions.AddFormatterMappings(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder), // Microsoft.Extensions.DependencyInjection.TagHelperServicesExtensions.AddCacheTagHelper(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder), // Microsoft.Extensions.DependencyInjection.MvcViewFeaturesMvcCoreBuilderExtensions.AddViews(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder), // and Microsoft.Extensions.DependencyInjection.MvcRazorMvcCoreBuilderExtensions.AddRazorViewEngine(Microsoft.Extensions.DependencyInjection.IMvcCoreBuilder). // To add services for pages call Microsoft.Extensions.DependencyInjection.MvcServiceCollectionExtensions.AddRazorPages(Microsoft.Extensions.DependencyInjection.IServiceCollection) // services.AddControllersWithViews(); /// string cs = Configuration.GetConnectionString("DefaultConnection"); services.AddControllersWithViews( delegate(Microsoft.AspNetCore.Mvc.MvcOptions opts) { // opts.default } ).AddRazorRuntimeCompilation( delegate(Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.MvcRazorRuntimeCompilationOptions options) { // options.FileProviders.Clear(); options.FileProviders.Add(new DatabaseFileProvider(fac)); // https://github.com/aspnet/FileSystem/blob/master/src/FS.Embedded/EmbeddedFileProvider.cs // options.FileProviders.Add( new Microsoft.Extensions.FileProviders.EmbeddedFileProvider(typeof(Startup).Assembly) ); } ) ; // https://www.mikesdotnetting.com/article/301/loading-asp-net-core-mvc-views-from-a-database-or-other-location // https://stackoverflow.com/questions/38247080/using-razor-outside-of-mvc-in-net-core // https://github.com/dotnet/AspNetCore.Docs/issues/14593 //services.Configure<Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.MvcRazorRuntimeCompilationOptions>( // delegate(Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation.MvcRazorRuntimeCompilationOptions options) // { // // Requires adding nuget Microsoft.AspNetCore.Mvc.Razor.RuntimeCompilation // // options.FileProviders.Clear(); // options.FileProviders.Add(new DatabaseFileProvider("cs")); // } //); services.AddOptions <Microsoft.AspNetCore.Builder.StaticFileOptions>() .Configure <Microsoft.AspNetCore.Http.IHttpContextAccessor, Microsoft.AspNetCore.Hosting.IWebHostEnvironment>( delegate(Microsoft.AspNetCore.Builder.StaticFileOptions options, Microsoft.AspNetCore.Http.IHttpContextAccessor httpContext, Microsoft.AspNetCore.Hosting.IWebHostEnvironment env) { options.FileProvider = new DomainSpecificFileProvider(httpContext, env); } ); } // End Sub ConfigureServices