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) }); }
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]); }