示例#1
0
 public static void Init(ServiceContainer container)
 {
     container.RegisterService<ITaskRegistration, TaskRegistration>();
     container.RegisterService<IBuildRunner, BuildRunner>();
     container.RegisterService<ITaskDirector, TaskDirector>();
     container.RegisterService<IOutput, OutputService>();
     container.RegisterService<IInput, InputService>();
     container.RegisterService<IHelpWriter, HelpWriter>();
     container.RegisterService<ITaskRegistrationValidator, TaskRegistrationValidator>();
     container.RegisterService<IArgumentsValidator, ArgumentsValidator>();
     container.RegisterService<ITaskGraphResolver, TaskGraphResolver>();
     container.RegisterService<ITypeFactory, InternalContainerTypeFactory>();
     container.RegisterService<IConsoleOutput, ConsoleOutput>();
     container.RegisterService<IClock, Clock>();
     container.RegisterService<IBuildEnvironment, BuildEnvironmentService>();
     container.RegisterService<ICommandLine, CommandLine>();
     container.RegisterService<ICmdParser, CmdParser>();
     container.RegisterService<ICmdArguments, CmdArgumentsService>();
     container.RegisterService<IKnownCmdArguments, KnownCmdArguments>();
     container.RegisterService<IBuildState, BuildStateService>();
     container.RegisterService<IDefaultFilterRegistration, DefaultFilterRegistration>();
     container.RegisterService<IBuildProgress, BuildProgress>();
     container.RegisterService<IRequestedTask, RequestedTask>();
     container.RegisterService<IDryrun, Dryrun>();
     container.RegisterService<IBuildSystem, BuildSystemService>();
     container.RegisterService<IApp, AppService>();
     container.RegisterService<IAppRunFilterRegistration, AppRunFilterRegistrationService>();
     container.RegisterService<IInteractiveMode, InteractiveMode>();
     container.RegisterService<ISelectionMenu, SelectionMenu>();
     container.RegisterService<IBuildStarter, BuildStarter>();
     container.RegisterCollection<IInteractiveModeMenuEntry>(new []
     {
         typeof(StartBuild),
         typeof(RunSpecificTaskOnce),
         typeof(ChangeTargetTask),
         typeof(ChangeCommandLineArguments)
     });
     container.RegisterCollection<IValidateTaskRegistration>(new[]
     {
         typeof(CheckForDefaultTask),
         typeof(CheckForUnregisteredDependencies),
         typeof(CheckForMultipleTimesRegisteredTasks),
         typeof(CheckForMultipleTimesRegisteredDependencies),
         typeof(CheckForCircularDependencies)
     });
     container.RegisterCollection<IValidateArguments>(new []
     {
         typeof(CheckForTargetTask)
     });
 }
示例#2
0
        public void Collections_should_be_resolved_in_the_registered_order()
        {
            var serviceContainer = new ServiceContainer();
            serviceContainer.RegisterCollection<ITestCollectionItem>(new[]
            {
                typeof(TestCollectionItem1),
                typeof(TestCollectionItem2)
            });

            var list = serviceContainer.Get<ITestCollectionItem[]>();
            Assert.IsInstanceOf<TestCollectionItem1>(list[0]);
            Assert.IsInstanceOf<TestCollectionItem2>(list[1]);
        }