コード例 #1
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));
        }
コード例 #2
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));
        }
コード例 #3
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();
        }
コード例 #4
0
        public void should_resolve_object()
        {
            var container = new SimpleIocContainer();

            container.Register <ITypeToResolve, ConcreteType>();

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

            Assert.IsInstanceOf <ConcreteType>(instance);
        }
コード例 #5
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);
        }
コード例 #6
0
        public void should_throw_exception_if_type_not_registered()
        {
            var container = new SimpleIocContainer();

            container.Resolve(typeof(ITypeToResolve));
        }