コード例 #1
0
ファイル: PluginTest.cs プロジェクト: wqaetly/NetCoreDemo
        public void SayHello()
        {
            var Configuration = new Microsoft.Extensions.Configuration.ConfigurationBuilder().
                                Add(new JsonConfigurationSource {
                Path = "testsettings.json", Optional = false, ReloadOnChange = true
            }).Build();

            Console.WriteLine($"{new LibraryTemplate.Class1().GetAssemblyName()}:hello~");
            Console.WriteLine($"{Configuration["MyKey"]}");
        }
コード例 #2
0
        // This method gets called by the runtime. Use this method to configure the HTTP request pipeline.
        public void Configure(IApplicationBuilder app, IHostingEnvironment env)
        {
            var builder = new Microsoft.Extensions.Configuration.ConfigurationBuilder();

            builder.SetBasePath(env.ContentRootPath)
            //add configuration.json
            .AddJsonFile("configuration.json", optional: false, reloadOnChange: true)
            .AddEnvironmentVariables();

            Configuration = builder.Build();
        }
コード例 #3
0
        public void Start()
        {
            var config = new Microsoft.Extensions.Configuration.ConfigurationBuilder()
                         .AddCommandLine(new[] { "--server.urls", $"http://{_serverInterface}:{_serverPort}" });

            var builder = new WebHostBuilder()
                          .UseKestrel()
                          .ConfigureServices(serviceCollection =>
            {
                serviceCollection.AddSingleton(_environment);
                serviceCollection.AddSingleton(_sharedTextWriter);
                serviceCollection.AddSingleton(NullEventEmitter.Instance);
                serviceCollection.AddSingleton(_commandLinePlugins);
                serviceCollection.AddSingleton(new HttpEnvironment {
                    Port = _serverPort
                });
            })
                          .UseUrls($"http://{_serverInterface}:{_serverPort}")
                          .UseConfiguration(config.Build())
                          .UseEnvironment("OmniSharp")
                          .UseStartup(typeof(Startup));

            using (var app = builder.Build())
            {
                app.Start();

                var appLifeTime = app.Services.GetRequiredService <IHostApplicationLifetime>();

                Console.CancelKeyPress += (sender, e) =>
                {
                    appLifeTime.StopApplication();
                    e.Cancel = true;
                };

                if (_environment.HostProcessId != -1)
                {
                    try
                    {
                        var hostProcess = Process.GetProcessById(_environment.HostProcessId);
                        hostProcess.EnableRaisingEvents = true;
                        hostProcess.OnExit(() => appLifeTime.StopApplication());
                    }
                    catch
                    {
                        // If the process dies before we get here then request shutdown
                        // immediately
                        appLifeTime.StopApplication();
                    }
                }

                appLifeTime.ApplicationStopping.WaitHandle.WaitOne();
            }
        }
コード例 #4
0
ファイル: InjectedManager.cs プロジェクト: xsysfan/Routines
        public static ApplicationSettings CreateInMemoryApplicationSettingsStandard(string name)
        {
            //if (configurationRoot == null)
            //{
            var configurationBuilder = new Microsoft.Extensions.Configuration.ConfigurationBuilder();

            Microsoft.Extensions.Configuration.JsonConfigurationExtensions.AddJsonFile(configurationBuilder, "appsettings.json", optional: false, reloadOnChange: true);
            Microsoft.Extensions.Configuration.IConfiguration configurationRoot = configurationBuilder.Build();
            //}
            var appSettings = new Routines.Configuration.Standard.AppSettings(configurationRoot);

            var configurationManagerLoader    = new Routines.Configuration.Standard.ConfigurationManagerLoader(configurationRoot);
            var configurationContainerFactory = ResetConfigurationContainerFactoryStandard(configurationManagerLoader);
            var unhandledExceptionLogging     = new NUnhandledExceptionLogging();

            return(new ApplicationSettings(appSettings, configurationContainerFactory, unhandledExceptionLogging, new AdminkaStorageConfiguration(name, null, StorageType.INMEMORY, null)));
        }
コード例 #5
0
        public void AddWebApi_Test()
        {
            var services = new ServiceCollection();

            services.AddWebApi();

            services.EjectAllInstancesOf <IConfiguration>();
            var config = new Mock <IConfiguration>();

            services.AddSingleton(config.Object);

            var msConfig = new Microsoft.Extensions.Configuration.ConfigurationBuilder().Build();

            services.AddSingleton <Microsoft.Extensions.Configuration.IConfiguration>(msConfig);

            services.AssertConfigurationIsValid();
        }
コード例 #6
0
        public IOptionsMonitor <ConnectionStrings> GetConnectionStringsClass()
        {
            //return new MockConnectionStrings();

            IServiceCollection services = new ServiceCollection();
            var configuration           = new Microsoft.Extensions.Configuration.ConfigurationBuilder().Build();

            services.Configure <ConnectionStrings>(
                option =>
            {
                option.Darkseid_Connection = "aaaaaAAAAA";
            });

            var options = services.BuildServiceProvider().GetRequiredService <IOptionsMonitor <ConnectionStrings> >();

            return(options);
        }
コード例 #7
0
        private Host BuildTestServerAndStart(TextReader reader, ISharedTextWriter writer, Action <Host> programDelegate = null)
        {
            var configuration          = new Microsoft.Extensions.Configuration.ConfigurationBuilder().Build();
            var environment            = new OmniSharpEnvironment();
            var serviceProvider        = CompositionHostBuilder.CreateDefaultServiceProvider(environment, configuration, NullEventEmitter.Instance);
            var cancelationTokenSource = new CancellationTokenSource();
            var host = new Host(reader, writer,
                                environment,
                                serviceProvider,
                                new CompositionHostBuilder(serviceProvider),
                                serviceProvider.GetRequiredService <ILoggerFactory>(),
                                cancelationTokenSource);

            programDelegate?.Invoke(host);

            host.Start();

            return(host);
        }
コード例 #8
0
ファイル: InjectedManager.cs プロジェクト: xsysfan/Routines
        public static ApplicationSettings CreateApplicationSettingsStandard(Microsoft.Extensions.Configuration.IConfiguration configurationRoot = null, string migrationAssembly = null)
        {
            if (configurationRoot == null)
            {
                var configurationBuilder = new Microsoft.Extensions.Configuration.ConfigurationBuilder();
                Microsoft.Extensions.Configuration.JsonConfigurationExtensions.AddJsonFile(configurationBuilder, "appsettings.json", optional: false, reloadOnChange: true);
                configurationRoot = configurationBuilder.Build();
            }
            var connectionStringMap         = new Routines.Configuration.Standard.ConnectionStringMap(configurationRoot);
            var connectionString            = connectionStringMap.GetConnectionString("AdminkaConnectionString");
            var adminkaStorageConfiguration = new AdminkaStorageConfiguration(connectionString, migrationAssembly, StorageType.SQLSERVER, migrationAssembly == null?default(int?):5 * 60);

            var appSettings = new Routines.Configuration.Standard.AppSettings(configurationRoot);

            var configurationManagerLoader    = new Routines.Configuration.Standard.ConfigurationManagerLoader(configurationRoot);
            var configurationContainerFactory = ResetConfigurationContainerFactoryStandard(configurationManagerLoader);
            var unhandledExceptionLogging     = new NUnhandledExceptionLogging();

            return(new ApplicationSettings(appSettings, configurationContainerFactory, unhandledExceptionLogging, adminkaStorageConfiguration));
        }
コード例 #9
0
        public void AddMongoDbContext_WithConfiguration()
        {
            var configurationBuilder = new Microsoft.Extensions.Configuration.ConfigurationBuilder();

            configurationBuilder.Add(new Microsoft.Extensions.Configuration.Memory.MemoryConfigurationSource
            {
                InitialData = new Dictionary <string, string> {
                    { "ConnectionString", MongoDbDefaults.LocalConnectionString },
                    { "DatabaseName", "test" },
                    { "CamelCase", "true" },
                    { "IgnoreIfNull", "true" }
                }
            });

            var configuration = configurationBuilder.Build();

            var services = new ServiceCollection();

            services
            .AddSingleton <TestService>()
            .AddMongoDbContext <TestDbContext>(configuration)
            .AddFakeMongoDbClientFactory();

            using (var scope = services.BuildServiceProvider())
            {
                var dbContext = scope.GetService <TestDbContext>();

                var pack = ConventionRegistry.Lookup(typeof(Document));
                Assert.NotEmpty(pack.Conventions.OfType <CamelCaseElementNameConvention>());
                Assert.NotEmpty(pack.Conventions.OfType <IgnoreIfDefaultConvention>());
                Assert.NotEmpty(pack.Conventions.OfType <IgnoreIfDefaultConvention>());

                Assert.Equal("test", dbContext.Database.DatabaseNamespace.DatabaseName);

                dbContext.Dispose();
            }
        }