public IServiceProvider ConfigureProviderArgsServices() { var services = new ServiceCollection().AddOptions(); services.Configure<FakeOptions>(o => { o.Configured = true; o.Environment = "ProviderArgs"; }); return services.BuildServiceProvider(); }
public IServiceProvider CreateContainer(ShellSettings settings, ShellBlueprint blueprint) { ServiceCollection serviceCollection = new ServiceCollection(); serviceCollection.AddScoped<IOrchardShell, DefaultOrchardShell>(); serviceCollection.AddScoped<IRouteBuilder, DefaultShellRouteBuilder>(); serviceCollection.AddInstance(settings); serviceCollection.AddInstance(blueprint.Descriptor); serviceCollection.AddInstance(blueprint); serviceCollection.AddMvc(); serviceCollection.Configure<RazorViewEngineOptions>(options => { var expander = new ModuleViewLocationExpander(); options.ViewLocationExpanders.Add(expander); }); var p = _serviceProvider.GetService<IOrchardLibraryManager>(); serviceCollection.AddInstance<IAssemblyProvider>(new DefaultAssemblyProviderTest(p, _serviceProvider, _serviceProvider.GetService<IAssemblyLoaderContainer>())); foreach (var dependency in blueprint.Dependencies) { foreach (var interfaceType in dependency.Type.GetInterfaces() .Where(itf => typeof(IDependency).IsAssignableFrom(itf))) { Logger.Debug("Type: {0}, Interface Type: {1}", dependency.Type, interfaceType); if (typeof(ISingletonDependency).IsAssignableFrom(interfaceType)) { serviceCollection.AddSingleton(interfaceType, dependency.Type); } else if (typeof(IUnitOfWorkDependency).IsAssignableFrom(interfaceType)) { serviceCollection.AddScoped(interfaceType, dependency.Type); } else if (typeof (ITransientDependency).IsAssignableFrom(interfaceType)) { serviceCollection.AddTransient(interfaceType, dependency.Type); } else { serviceCollection.AddScoped(interfaceType, dependency.Type); } } } //foreach (var item in blueprint.Controllers) { // var serviceKeyName = (item.AreaName + "/" + item.ControllerName).ToLowerInvariant(); // var serviceKeyType = item.Type; // serviceCollection.AddScoped(serviceKeyType); //} return BuildFallbackServiceProvider( serviceCollection, _serviceProvider); }
private static IServiceProvider CreateServiceProvider() { Thread.CurrentThread.CurrentCulture = new CultureInfo("en-gb"); var builder = new ConfigurationBuilder().AddUserSecrets(); var configuration = builder.Build(); var services = new ServiceCollection(); services.AddWarcraft(); services.AddBattleNetCache(); services.Configure<BattleNetClientOptions>(options => { options.ApiKey = configuration["Authentication:BattleNet:Key"]; options.ParseApiResponseInformation = true; options.ThrowErrorOnMissingMembers = true; }); return services.BuildServiceProvider(); }
public void AntiforgeryOptionsSetup_UserOptionsSetup_CanSetCookieName() { // Arrange var serviceCollection = new ServiceCollection(); serviceCollection.Configure<AntiforgeryOptions>(o => { Assert.Null(o.CookieName); o.CookieName = "antiforgery"; }); serviceCollection.AddAntiforgery(); serviceCollection.ConfigureDataProtection(o => o.SetApplicationName("HelloWorldApp")); var services = serviceCollection.BuildServiceProvider(); var options = services.GetRequiredService<IOptions<AntiforgeryOptions>>(); // Act var cookieName = options.Value.CookieName; // Assert Assert.Equal("antiforgery", cookieName); }
private static IInlineConstraintResolver GetConstraintResolver() { var services = new ServiceCollection().AddOptions(); services.Configure<RouteOptions>(options => options .ConstraintMap .Add("test", typeof(TestRouteConstraint))); var serviceProvider = services.BuildServiceProvider(); var accessor = serviceProvider.GetRequiredService<IOptions<RouteOptions>>(); return new DefaultInlineConstraintResolver(accessor); }
public void SetupCallsInOrder() { var services = new ServiceCollection().AddOptions(); var dic = new Dictionary<string, string> { {"Message", "!"}, }; var builder = new ConfigurationBuilder().AddInMemoryCollection(dic); var config = builder.Build(); services.Configure<FakeOptions>(o => o.Message += "Igetstomped"); services.Configure<FakeOptions>(config); services.Configure<FakeOptions>(o => o.Message += "a"); services.ConfigureOptions(typeof(FakeOptionsSetupA)); services.ConfigureOptions(new FakeOptionsSetupB()); services.ConfigureOptions<FakeOptionsSetupC>(); services.Configure<FakeOptions>(o => o.Message += "z"); var service = services.BuildServiceProvider().GetService<IOptions<FakeOptions>>(); Assert.NotNull(service); var options = service.Value; Assert.NotNull(options); Assert.Equal("!aABCz", options.Message); }
public void Configure_GetsNullableOptionsFromConfiguration( IDictionary<string, string> configValues, IDictionary<string, object> expectedValues) { // Arrange var services = new ServiceCollection().AddOptions(); var builder = new ConfigurationBuilder().AddInMemoryCollection(configValues); var config = builder.Build(); services.Configure<NullableOptions>(config); // Act var options = services.BuildServiceProvider().GetService<IOptions<NullableOptions>>().Value; // Assert var optionsProps = options.GetType().GetProperties().ToDictionary(p => p.Name); var assertions = expectedValues .Select(_ => new Action<KeyValuePair<string, object>>(kvp => Assert.Equal(kvp.Value, optionsProps[kvp.Key].GetValue(options)))); Assert.Collection(expectedValues, assertions.ToArray()); }
public void SetupTargetOptionsNameIsNotCaseSensitive() { var services = new ServiceCollection().AddOptions(); services.Configure<FakeOptions>(o => o.Message += "B", -100, "abc"); var service = services.BuildServiceProvider().GetService<IOptions<FakeOptions>>(); var options2 = service.GetNamedOptions("ABC"); Assert.NotNull(options2); Assert.Equal("B", options2.Message); var options3 = service.GetNamedOptions("aBc"); Assert.NotNull(options3); Assert.Equal("B", options3.Message); }
public void NullNamesAreAlwaysApplied() { const string TargetOptionsName = "Name"; var services = new ServiceCollection().AddOptions(); services.Configure<FakeOptions>(o => o.Message += "a"); services.Configure<FakeOptions>(o => o.Message += "N", TargetOptionsName); var service = services.BuildServiceProvider().GetService<IOptions<FakeOptions>>(); Assert.NotNull(service); var options = service.Options; Assert.NotNull(options); Assert.Equal("a", options.Message); var namedOption = service.GetNamedOptions(TargetOptionsName); Assert.NotNull(namedOption); Assert.Equal("aN", namedOption.Message); }
public void NamedSetupDoNotCollideWithEachOther() { var services = new ServiceCollection().AddOptions(); var dic = new Dictionary<string, string> { {"Message", "!"}, }; var builder = new ConfigurationBuilder(new MemoryConfigurationSource(dic)); var config = builder.Build(); services.ConfigureOptions(new FakeOptionsSetupB { Name = "2" }); services.Configure<FakeOptions>(o => o.Message += "Z", 10000, "2"); services.ConfigureOptions(new FakeOptionsSetupB { Name = "3" }); services.Configure<FakeOptions>(config, "3"); services.Configure<FakeOptions>(o => o.Message += "z", 10000, "3"); var service = services.BuildServiceProvider().GetService<IOptions<FakeOptions>>(); Assert.NotNull(service); var options = service.Options; Assert.NotNull(options); Assert.Equal("", options.Message); var options2 = service.GetNamedOptions("2"); Assert.NotNull(options2); Assert.Equal("BZ", options2.Message); var options3 = service.GetNamedOptions("3"); Assert.NotNull(options3); Assert.Equal("!Bz", options3.Message); }