public void AddMapper_ThrowsWithNoInterfaces()
        {
            var container = new SimpleIocContainer();

            Assert.ThrowsException <InvalidOperationException>(
                () => NotSoAutoMapperIocContainerUtilities.AddMapper(typeof(object), container.Register));
        }
コード例 #2
0
        /// <summary>
        /// Represents the entry point to the application.
        /// </summary>
        /// <param name="args">The command line arguments, which should always be empty, since they are not used in the application.</param>
        public static void Main(string[] args)
        {
            // Asks the user to specifiy which IoC container shall be used
            System.Console.Write("Use 'SimpleIoC' or 'Ninject': ");
            IIocContainer iocContainer;
            if (System.Console.ReadLine().ToUpperInvariant() == "NINJECT")
                iocContainer = new NinjectIocContainer();
            else
                iocContainer = new SimpleIocContainer();

            // Binds the vehicles to the kernel
            iocContainer.RegisterType<IVehicle, Car>();
            iocContainer.RegisterType<IVehicle, Motorcycle>(typeof(SuperCoolPerson)); // Obviously super cool people drive motorcycles!

            // Creates some persons
            Person person = iocContainer.GetInstance<Person>();
            Person superCoolPerson = iocContainer.GetInstance<SuperCoolPerson>();
            Person namedPerson = iocContainer.GetInstance<NamedPerson>("Bob");

            // Prints out the personal information about the persons that were created
            System.Console.WriteLine(person);
            System.Console.WriteLine(superCoolPerson);
            System.Console.WriteLine(namedPerson);

            // Waits for a key stroke, before the application is quit
            System.Console.WriteLine("Press any key to quit...");
            System.Console.ReadKey();
        }
コード例 #3
0
 internal void Configuration(IAppBuilder app)
 {
     var config = new HttpConfiguration();
     HttpServerConfiguration.Configure(config);
     Container = (config.DependencyResolver as MyDependencyResolver).GetContainer() as SimpleIocContainer;
     app.UseWebApi(config);
 }
        public void AddNotSoAutoMapper_AddsRequiredServices()
        {
            var container = new SimpleIocContainer();

            NotSoAutoMapperIocContainerUtilities.AddNotSoAutoMapper(container.Register);

            // Yay!
        }
コード例 #5
0
ファイル: ContainerBuilder.cs プロジェクト: 00mjk/LanExchange
        /// <summary>
        /// Maps interfaces to concrete implementations.
        /// </summary>
        public static IIocContainer Build()
        {
            var container = new SimpleIocContainer();

            // core singletons
            container.Register <IPanelItemFactoryManager, PanelItemFactoryManagerImpl>();
            container.Register <IPanelFillerManager, PanelFillerManagerImpl>();
            container.Register <IPanelColumnManager, PanelColumnManagerImpl>();
            container.Register <IFolderManager, FolderManagerImpl>();
            container.Register <IPluginManager, PluginManagerImpl>();
            container.Register <IServiceProvider, ServiceProviderImpl>();
            container.Register <ILazyThreadPool, LazyThreadPoolImpl>();
            container.Register <IPuntoSwitcherService, PuntoSwitcherServiceEngRus>();
            container.Register <ITranslationService, TranslationServiceImpl>();
            container.Register <IDisposableManager, DisposableManagerImpl>();
            // updater
            container.Register <IPanelUpdater, PanelUpdaterImpl>(LifeCycle.Transient);
            // models
            container.Register <IAboutModel, AboutModel>();
            container.Register <IConfigModel, ConfigModel>();
            container.Register <IPagesModel, PagesModel>(LifeCycle.Transient);
            container.Register <IPanelModel, PanelModel>(LifeCycle.Transient);
            // presenters
            container.Register <IMainPresenter, MainPresenter>();
            container.Register <IAboutPresenter, AboutPresenter>();
            container.Register <IPagesPresenter, PagesPresenter>();
            container.Register <IFilterPresenter, FilterPresenter>(LifeCycle.Transient);
            container.Register <IPanelPresenter, PanelPresenter>(LifeCycle.Transient);
            container.Register <IEditPresenter, EditPresenter>(LifeCycle.Transient);
            // OS: Windows
            container.Register <IUser32Service, User32Service>();
            container.Register <IShell32Service, Shell32Service>();
            container.Register <IKernel32Service, Kernel32Service>();
            container.Register <IComctl32Service, Comctl32Service>();
            container.Register <IOle32Service, Ole32Service>();
            container.Register <IIPHLPAPISerivice, IPHLPAPISerivce>();
            container.Register <IHotkeysService, HotkeysService>();
            container.Register <ISingleInstanceService, SingleInstanceService>();
            container.Register <ISysImageListService, SysImageListService>(LifeCycle.Transient);
            // UI: WinForms
            container.Register <ICheckAvailabilityWindow, CheckAvailabilityForm>(LifeCycle.Transient);
            container.Register <IAboutView, AboutForm>(LifeCycle.Transient);
            container.Register <IFilterView, FilterView>(LifeCycle.Transient);
            container.Register <IPanelView, PanelView>(LifeCycle.Transient);
            container.Register <IEditView, EditForm>(LifeCycle.Transient);
            container.Register <IMainView, MainForm>();
            container.Register <IPagesView, PagesView>();
            container.Register <IAddonManager, AddonManagerImpl>();
            container.Register <IImageManager, ImageManagerImpl>();
            container.Register <IAppPresenter, AppPresenter>();
            container.Register <IWaitingService, WaitingServiceImpl>();
            container.Register <IClipboardService, ClipboardServiceImpl>();
            container.Register <IScreenService, ScreenImpl>();
            container.Register <IMessageBoxService, MessageBoxServiceImpl>();
            return(container);
        }
コード例 #6
0
        public void should_resolve_object()
        {
            var container = new SimpleIocContainer();

            container.Register <ITypeToResolve, ConcreteType>();

            object instance = container.Resolve(typeof(ITypeToResolve));

            Assert.IsInstanceOf <ConcreteType>(instance);
        }
コード例 #7
0
        public void should_create_singleton_instance_by_default()
        {
            var container = new SimpleIocContainer();

            container.Register <ITypeToResolve, ConcreteType>();

            object instance = container.Resolve(typeof(ITypeToResolve));

            Assert.That(container.Resolve(typeof(ITypeToResolve)), Is.SameAs(instance));
        }
コード例 #8
0
        public void can_create_transient_instance()
        {
            var container = new SimpleIocContainer();

            container.Register <ITypeToResolve, ConcreteType>(LifeCycle.Transient);

            object instance = container.Resolve(typeof(ITypeToResolve));

            Assert.That(container.Resolve(typeof(ITypeToResolve)), Is.Not.SameAs(instance));
        }
コード例 #9
0
        public void should_resolve_object_with_registered_constructor_parameters()
        {
            var container = new SimpleIocContainer();

            container.Register <ITypeToResolve, ConcreteType>();
            container.Register <ITypeToResolveWithConstructorParams, ConcreteTypeWithConstructorParams>();

            object instance = container.Resolve(typeof(ITypeToResolveWithConstructorParams));

            Assert.IsInstanceOf <ConcreteTypeWithConstructorParams>(instance);
        }
        public void AddMapper_AddsAllInterfaces()
        {
            var container    = new SimpleIocContainer();
            var imapperTypes = new[] { typeof(IMapper <object, int>), typeof(IMapper <double, int>) };
            var mapper       = Substitute.For(imapperTypes, Array.Empty <object>());

            NotSoAutoMapperIocContainerUtilities.AddMapper(mapper.GetType(), container.Register);

            var expectedRegistrations = imapperTypes.Select(x => (x, mapper.GetType())).ToList();

            CollectionAssert.AreEquivalent(expectedRegistrations, container.Registrations);
        }
コード例 #11
0
        public void Second_Registration_Should_Override_The_First_One()
        {
            // Arrange
            var poorManContainer = new SimpleIocContainer();

            poorManContainer.Register <IFileSystem, FileSystem>();
            poorManContainer.RegisterSingleton <IFileSystem>(new MockFileSystem());

            // Act
            var fileSystem = poorManContainer.GetInstance <IFileSystem>();

            // Assert
            fileSystem.Should().BeOfType <MockFileSystem>();
        }
コード例 #12
0
        public static void InitializeIocContainer()
        {
            _iocContainer = new SimpleIocContainer();

            _iocContainer.Register <ICostRepository, CostRepository>();
            _iocContainer.Register <ICriteriaRepository, CriteriaRepository>();
            _iocContainer.Register <ICriteriaValueRepository, CriteriaValueRepository>();
            _iocContainer.Register <ILabelRepository, LabelRepository>();
            _iocContainer.Register <ILabelTranslationRepository, LabelTranslationRepository>();
            _iocContainer.Register <ISqlServerDatabase, SqlServerDatabase>();
            _iocContainer.Register <IDatabaseConfiguration, DatabaseConfiguration>();
            _iocContainer.Register <NewCostsViewModel, NewCostsViewModel>();
            _iocContainer.Register <AllCostsViewModel, AllCostsViewModel>();
            _iocContainer.Register <SettingsViewModel, SettingsViewModel>();
            _iocContainer.Register <BaseViewModel, BaseViewModel>();
        }
コード例 #13
0
        static void Main(string[] args)
        {
            DataBaseInitializer <TaskContext> .InitializedDatabase();

            IContainer container = new SimpleIocContainer();

            BootStrapper.Configure(container);

            ICommandDispatcher commandDispatcher = container.Resolve <ICommandDispatcher>();

            IQueryDispatcher queryDispatcher = container.Resolve <IQueryDispatcher>();



            var createCommand = new CreateTaskCommand {
                Title = "CQRS Örneği", UserName = "******", IsCompleted = false, CreatedOn = DateTime.Now, UpdatedOn = DateTime.Now
            };

            commandDispatcher.Execute(createCommand);


            var getTasksQuery = new GetTasksQuery();

            getTasksQuery.Predicate = (t) => t.IsCompleted == false;

            IQueryable <Task> tasks = queryDispatcher.Query <GetTasksQuery, IQueryable <Task> >(getTasksQuery);


            Console.WriteLine("Bitmemiş tasklar getiriliyor.");

            foreach (var task in tasks.ToList())
            {
                Console.WriteLine(task);
            }

            var lastTask = tasks.ToList().LastOrDefault();


            var changeCommand = new ChangeTaskStatusCommand {
                TaskId = 24, IsCompleted = true, UpdatedOn = DateTime.Now.AddMinutes(5)
            };

            commandDispatcher.Execute(changeCommand);

            Console.ReadLine();
        }
コード例 #14
0
        /// <summary>
        /// Represents the asynchronous entry point to the application, which allows us to use asynchorous methods.
        /// </summary>
        public static async Task MainAsync()
        {
            // Asks the user to specify a file name
            System.Console.Write("Specify file name (default is My Documents): ");
            string fileName = System.Console.ReadLine();
            if (string.IsNullOrWhiteSpace(fileName))
                fileName = Path.Combine(Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments), "Export.pdf");

            // Asks the user for his name
            System.Console.Write("What is your name: ");
            string documentAuthor = System.Console.ReadLine();

            // Creates the report, renders, and exports it
            System.Console.WriteLine("Generating document...");
            IIocContainer iocContainer = new SimpleIocContainer();
            ReportingService reportingService = new ReportingService(iocContainer);
            DocumentFormat documentFormat = Path.GetExtension(fileName).ToUpperInvariant() == ".XPS" ? DocumentFormat.Xps : DocumentFormat.Pdf;
            await reportingService.ExportAsync<Document>(documentFormat, fileName, string.IsNullOrWhiteSpace(documentAuthor) ? null : new { Author = documentAuthor });
            System.Console.WriteLine("Finished generating document");
            
            // Waits for a key stroke, before the application is quit
            System.Console.WriteLine("Press any key to quit...");
            System.Console.ReadKey();
        }
コード例 #15
0
        public void should_throw_exception_if_type_not_registered()
        {
            var container = new SimpleIocContainer();

            container.Resolve(typeof(ITypeToResolve));
        }