コード例 #1
0
        public void Should_Allow_Null_Extra_Configuration()
        {
            // Arrange
            var serviceCollection = new ServiceCollection();
            var adapter           = new MicrosoftDependencyInjectionAdapter(serviceCollection, null);

            // Act / Assert
            Should.NotThrow(() => adapter.GetScoped(new List <(ContainerConfigurationOption option, string value)>()));
        }
コード例 #2
0
        public void Should_Return_Nested_Container()
        {
            // Arrange
            var serviceCollection = new ServiceCollection();
            var adapter           = new MicrosoftDependencyInjectionAdapter(serviceCollection, (config, commands) => config);

            // Act
            var nested = adapter.GetScoped(new List <(ContainerConfigurationOption option, string value)>());

            // Assert
            nested.ShouldNotBe(adapter);
            nested.ShouldBeOfType <MicrosoftDependencyInjectionAdapter>();
        }
コード例 #3
0
        public void Should_Invoke_Extra_Configuration()
        {
            // Arrange
            var  serviceCollection = new ServiceCollection();
            bool configCalled      = false;
            var  adapter           = new MicrosoftDependencyInjectionAdapter(serviceCollection, (config, commands) =>
            {
                configCalled = true;
                return(config);
            });

            // Act
            adapter.GetScoped(new List <(ContainerConfigurationOption option, string value)>());

            // Assert
            configCalled.ShouldBeTrue();
        }
コード例 #4
0
        static void Main(string[] args)
        {
            var serviceCollection = new ServiceCollection()
                                    .AddTransient <IExampleService, ExampleService>()
                                    .AddTransient <TestSimpleCommandClass>();

            var containerAdapter = new MicrosoftDependencyInjectionAdapter(serviceCollection, (scopeBuilder, commands) =>
            {
                scopeBuilder.AddSingleton <IExampleConfiguration>(new ExampleConfiguration(commands));
                return(scopeBuilder);
            });

            var app = new CommandLineInjectingApplication("commandlineinjector-example", containerAdapter);

            app.RequiresCommand();
            app.AddToSubsequentAllCommands(ExampleConfiguration.ConfigValueOption);

            app.Command <TestSimpleCommandClass>("simple");
            app.Execute(args);

            Console.ReadLine();
        }