public static void Configure()
        {
            IoC.Container.Configure(cfg =>
            {
                cfg.Scan(scan =>
                {
                    scan.TheCallingAssembly();
                    scan.WithDefaultConventions();
                });

                cfg.AddRegistry(new ControllerRegistry());
                cfg.AddRegistry(new MvcRegistry());
                cfg.AddRegistry(new ActionFilterRegistry(namespacePrefix: "HeroicFramework.SampleWebApp"));

                //Are you using ASP.NET Identity?  If so, you'll probably need to configure some additional services:

                //1) Make IUserStore injectable.  Replace 'ApplicationUser' with whatever your Identity user type is.
                //For<IUserStore<ApplicationUser>>().Use<UserStore<ApplicationUser>>();

                //2) Change AppDbContext to your application's Entity Framework context.
                //For<DbContext>().Use<AppDbContext>();

                //3) This will allow you to inject the IAuthenticationManager.  You may not need this, but you will if you
                //   used the default ASP.NET MVC project template as a starting point!
                //For<IAuthenticationManager>().Use(ctx => ctx.GetInstance<HttpRequestBase>().GetOwinContext().Authentication);

                //TODO: Add other registries and configure your container (if needed)
            });

            var resolver = new StructureMapDependencyResolver();

            DependencyResolver.SetResolver(resolver);
            GlobalConfiguration.Configuration.DependencyResolver = resolver;
        }
예제 #2
0
파일: Global.asax.cs 프로젝트: onnorh/test
        protected void Application_Start()
        {
            _container = new Container();
            AreaRegistration.RegisterAllAreas();
            _container.Configure(cfg =>
            {
                cfg.AddRegistry(new StandardRegistry());
                cfg.AddRegistry(new LoggingRegistry());
                cfg.AddRegistry(new ControllerRegistry());
                cfg.AddRegistry(new ServiceRegistry());
                cfg.AddRegistry(new DataContextRegistry());
                cfg.AddRegistry(new MvcRegistry());
            });
            _structureMapDependencyResolver = new StructureMapDependencyResolver(() => _container);
            Func<IContainer> containerFactory = () => _structureMapDependencyResolver.CurrentNestedContainer ?? _container;

            DependencyResolver.SetResolver(_structureMapDependencyResolver);
            GlobalConfiguration.Configure(config =>
            {
                WebApiConfig.Register(config, containerFactory);
            });
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
        public void ConfigureContainer(ServiceConfigurationContext context)
        {
            var resolver = new StructureMapDependencyResolver(context.StructureMap());

            DependencyResolver.SetResolver(resolver);
            GlobalConfiguration.Configuration.DependencyResolver = resolver;
        }
예제 #4
0
 public static void Initialize()
 {
     RootContainer        = new Container(new VkAppRegistry());
     StructureMapResolver = new StructureMapDependencyResolver(RootContainer);
     Resolver.SetResolver(StructureMapResolver);
     ServiceLocator.SetLocatorProvider(CreateServiceLocator);
 }
예제 #5
0
        public static void ConfigureStructureMap()
        {
            var container            = CreateStructureMapContainer();
            var smDependencyResolver = new StructureMapDependencyResolver(container);

            DependencyResolver.SetResolver(smDependencyResolver);
        }
예제 #6
0
        protected void Application_Start()
        {
            _container = new Container();
            AreaRegistration.RegisterAllAreas();
            _container.Configure(cfg =>
            {
                cfg.AddRegistry(new StandardRegistry());
                cfg.AddRegistry(new LoggingRegistry());
                cfg.AddRegistry(new ControllerRegistry());
                cfg.AddRegistry(new ServiceRegistry());
                cfg.AddRegistry(new DataContextRegistry());
                cfg.AddRegistry(new MvcRegistry());
            });
            _structureMapDependencyResolver = new StructureMapDependencyResolver(() => _container);
            Func <IContainer> containerFactory = () => _structureMapDependencyResolver.CurrentNestedContainer ?? _container;

            DependencyResolver.SetResolver(_structureMapDependencyResolver);
            GlobalConfiguration.Configure(config =>
            {
                WebApiConfig.Register(config, containerFactory);
            });
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);
        }
        public static void Configure()
        {
            ObjectFactory.Configure(cfg =>
            {
                cfg.Scan(scan =>
                {
                    scan.TheCallingAssembly();
                    scan.WithDefaultConventions();
                });

                cfg.AddRegistry(new ControllerRegistry());
                cfg.AddRegistry(new MvcRegistry());
                cfg.AddRegistry(new ActionFilterRegistry(namespacePrefix: "identity_with_ioc"));

                //TODO: Add other registries and configure your container!
                cfg.For <ApplicationSignInManager>().Use(ctx =>
                                                         ctx.GetInstance <HttpContextBase>().GetOwinContext().Get <ApplicationSignInManager>());
                cfg.For <ApplicationUserManager>().Use(ctx =>
                                                       ctx.GetInstance <HttpContextBase>().GetOwinContext().GetUserManager <ApplicationUserManager>());
            });

            var resolver = new StructureMapDependencyResolver();

            DependencyResolver.SetResolver(resolver);
            GlobalConfiguration.Configuration.DependencyResolver = resolver;
        }
예제 #8
0
        private ActorSystem CreateActorSystem(IThuriaIocContainer iocContainer)
        {
            var actorSystem = ActorSystem.Create("TestHeliumAkkaIocRegistrySystem", ThuriaHoconLoader.FromFile("akka.config"));
            StructureMapDependencyResolver dependencyResolver = new StructureMapDependencyResolver((IContainer)iocContainer.Container, actorSystem);

            return(actorSystem);
        }
예제 #9
0
        public static void InitializeDependencyResolution()
        {
            IContainer          container          = IoC.Initialize();
            IDependencyResolver dependencyResolver = new StructureMapDependencyResolver(container);

            DependencyResolver.SetResolver(dependencyResolver);
        }
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            WebApiRouteRegistry.Register(GlobalConfiguration.Configuration);

            // Filter out unhandled exceptions for logging purposes.
            GlobalFilters.Filters.Add(new ExceptionFilter());

            // Do not remove this Attribute, this enables the [Authorize] attribute by default on all routes.
            // Applies to MVC routes
            GlobalFilters.Filters.Add(new AuthorizeAttribute());

            // Applies to WebApi routes
            GlobalConfiguration.Configuration.Filters.Add(new System.Web.Http.AuthorizeAttribute());

            StructureMapDependencyResolver serviceLocator = TypeRegistry.RegisterTypes();

            DependencyResolver.SetResolver(serviceLocator);
            GlobalConfiguration.Configuration.DependencyResolver = serviceLocator;

            RouteRegistry.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            ////#if DEBUG
            ////BundleTable.EnableOptimizations = false;
            ////#else
            ////	BundleTable.EnableOptimizations = true;
            ////#endif
        }
예제 #11
0
        // ReSharper disable once UnusedMember.Global
        public static void Start()
        {
            IContainer container = IoC.Initialize();
            var        structureMapDependencyResolver = new StructureMapDependencyResolver(container);

            DependencyResolver.SetResolver(structureMapDependencyResolver);
            GlobalConfiguration.Configuration.DependencyResolver = structureMapDependencyResolver;
        }
 public void GetConcreteInstanceOf_ShouldReturn_AttendeeRepositoryStub_WhenPassed_IAttendeeRepository()
 {
     //Arrange
     IDependencyResolver dependencyResolver = new StructureMapDependencyResolver();
     //Act
     var myRepo = dependencyResolver.GetConcreteInstanceOf<IAttendeeRepository>();
     //Assert
     Assert.IsInstanceOfType(myRepo, typeof(AttendeeRepositoryStub));
 }
예제 #13
0
        protected override void CustomizeFixture(IFixture fixture)
        {
            var scope          = new StructureMapDependencyResolver(IntegrationTestContainerFactory.Container);
            var contextFixture = new TestContextFixture(scope, fixture);

            contextFixture.SetUp();

            fixture.Register(() => contextFixture);
        }
        public static void ConfigureContainer()
        {
            var container = ObjectFactory.Container;

            container.Configure(ConfigureContainer);
            var resolver = new StructureMapDependencyResolver(container);

            DependencyResolver.SetResolver(resolver);
        }
예제 #15
0
    public static void Config()
    {
        var container = InitializeContainer();
        var webApiDependencyResolver = new StructureMapResolver(container);

        GlobalConfiguration.Configuration.DependencyResolver = webApiDependencyResolver;
        var mvcDependencyResolver = new StructureMapDependencyResolver(container);

        DependencyResolver.SetResolver(mvcDependencyResolver);
    }
예제 #16
0
        static void Main(string[] args)
        {
            var container = DependencyContainer.Build();

            ActorSystem = Akka.Actor.ActorSystem.Create("TrangselskattActorSystem");
            var resolver = new StructureMapDependencyResolver(container, ActorSystem);
            var _        = ActorSystem.ActorOf(ActorSystem.DI().Props <VehicleCoordinatorActor>(), "VehicleCoordinator");

            Console.ReadLine();
        }
 public override void Setup()
 {
     ObjectFactory.Initialize(x =>
     {
         x.UseDefaultStructureMapConfigFile = false;
         x.BuildInstancesOf<IDependency>().TheDefaultIsConcreteType<SimpleDependency>();
         x.BuildInstancesOf<SimpleDependency>().TheDefaultIsConcreteType<SimpleDependency>();
         x.BuildInstancesOf<NestedDependency>().TheDefaultIsConcreteType<NestedDependency>();
     });
     _dependencyResolver = new StructureMapDependencyResolver();
 }
예제 #18
0
 public override void Setup()
 {
     ObjectFactory.Initialize(x =>
     {
         x.UseDefaultStructureMapConfigFile = false;
         x.BuildInstancesOf <IDependency>().TheDefaultIsConcreteType <SimpleDependency>();
         x.BuildInstancesOf <SimpleDependency>().TheDefaultIsConcreteType <SimpleDependency>();
         x.BuildInstancesOf <NestedDependency>().TheDefaultIsConcreteType <NestedDependency>();
     });
     _dependencyResolver = new StructureMapDependencyResolver();
 }
예제 #19
0
        public void StructureMapResolveSingleInstance()
        {
            var registered = new Registered();

            ObjectFactory.Initialize(i => i.Register(registered));

            var resolver = new StructureMapDependencyResolver(ObjectFactory.Container);

            var resolved = (Registered) resolver.GetInstance(typeof (Registered));

            Assert.That(resolved, Is.EqualTo(registered));
        }
예제 #20
0
        public void StructureMapResolveSingleInstance()
        {
            var registered = new Registered();

            ObjectFactory.Initialize(i => i.Register(registered));

            var resolver = new StructureMapDependencyResolver(ObjectFactory.Container);

            var resolved = (Registered)resolver.GetInstance(typeof(Registered));

            Assert.That(resolved, Is.EqualTo(registered));
        }
예제 #21
0
        protected void Application_Start()
        {
            GlobalConfiguration.Configure(WebApiConfig.Register);

            var container = new Container(x => x.Scan(s =>
            {
                s.LookForRegistries();
                s.TheCallingAssembly();
            }));

            var dependencyResolver = new StructureMapDependencyResolver(container);

            GlobalConfiguration.Configuration.DependencyResolver = dependencyResolver;
        }
예제 #22
0
        public static void Initialize()
        {
            HibernatingRhinos.Profiler.Appender.EntityFramework.EntityFrameworkProfiler.Initialize();
            var container = new Container(new ScanningRegistry());

            StructureMapDependencyResolver.Initialize(container);
            ServiceLocator.SetLocatorProvider(() => StructureMapDependencyResolver.Current);
            DependencyResolver.SetResolver(ServiceLocator.Current);

            FluentValidationModelValidatorProvider.Configure(x =>
            {
                x.ValidatorFactory = new StructureMapValidatorFactory();
            });
        }
예제 #23
0
        private void IntializeIocContainer()
        {
            StructureMapContainer = new Container();
            var dependencyResolver = new StructureMapDependencyResolver(StructureMapContainer);

            Abstraction.IocContainer.DependencyResolver.Setup(dependencyResolver);
            DependencyResolver             = dependencyResolver;
            DependencyResolverConfigurator = dependencyResolver;

            StructureMapContainer.Configure(x =>
            {
                x.For <IDependencyResolver>().Singleton().Use(DependencyResolver);
                x.For <IDependencyResolverConfigurator>().Singleton().Use(DependencyResolverConfigurator);
            });
        }
예제 #24
0
 public static void Initialize()
 {
     lock (_syncRoot)
     {
         if (!_isInitialized)
         {
             Container          = ContainerFactory.Initialize();
             ServiceLocator     = new StructureMapDependencyScope(Container);
             DependencyResolver = new StructureMapDependencyResolver(Container);
             StructuremapMvc.StructureMapDependencyScope = new StructureMapDependencyScope(Container);
             DynamicModuleUtility.RegisterModule(typeof(StructureMapScopeModule));
             DynamicModuleUtility.RegisterModule(typeof(PopForumsLoggingModule));
             _isInitialized = true;
         }
     }
 }
예제 #25
0
        /// <summary>
        /// Configures Web API to use StructureMap for dependency resolution.
        /// Overrides <see cref="IHttpControllerActivator"/> to make <see cref="HttpRequestMessage"/> injectable.
        /// </summary>
        /// <param name="httpConfiguration"></param>
        /// <param name="container"></param>
        public static void UseStructureMap(this HttpConfiguration httpConfiguration, IContainer container)
        {
            if (httpConfiguration == null)
            {
                throw new ArgumentNullException("httpConfiguration");
            }

            if (container == null)
            {
                throw new ArgumentNullException("container");
            }

            var dependencyResolver = new StructureMapDependencyResolver(container);

            httpConfiguration.DependencyResolver = dependencyResolver;
            httpConfiguration.Services.Replace(typeof(IHttpControllerActivator), dependencyResolver);
        }
        public void ConfigureContainer(ServiceConfigurationContext context)
        {
            var resolver = new StructureMapDependencyResolver(context.StructureMap());

            var disableStructureMapMvcRegistration    = ConfigurationManager.AppSettings["epiCommonUtils:disableStructureMapMvcRegistration"];
            var disableStructureMapWebApiRegistration = ConfigurationManager.AppSettings["epiCommonUtils:disableStructureMapWebApiRegistration"];

            if (disableStructureMapMvcRegistration == null || bool.Parse(disableStructureMapMvcRegistration) == false)
            {
                DependencyResolver.SetResolver(resolver);
            }

            if (disableStructureMapWebApiRegistration == null || bool.Parse(disableStructureMapWebApiRegistration) == false)
            {
                GlobalConfiguration.Configuration.DependencyResolver = resolver;
            }
        }
예제 #27
0
        private IActorRef CreateActor(IDatabaseBuilder databaseBuilder = null)
        {
            var databaseSettings = Substitute.For <IThuriaDatabaseSettings>();

            databaseSettings.GetConnectionString("TestDbContext").Returns("TestConnectionString");

            var container = new Container(
                expression =>
            {
                expression.For <IThuriaDatabaseSettings>().Use(databaseSettings);
                expression.For <IDatabaseBuilder>().Use(databaseBuilder ?? Substitute.For <IDatabaseBuilder>());
            });
            var dependencyResolver = new StructureMapDependencyResolver(container, Sys);

            var actorProps = Sys.DI().Props <HeliumExecuteSqlQueryActor>();

            return(Sys.ActorOf(actorProps, "Test"));
        }
예제 #28
0
        static void Main(string[] args)
        {
            var system = AkkaOfEmpiresSystem.Start();
            var container = GetDependencyContainer(system);
            var resolver = new StructureMapDependencyResolver(container, system);

            var villagerProps = system.DI().Props<ConsoleVillagerActor>();
            var gatherer = system.ActorOf(villagerProps);
            gatherer.Tell(new GatherFruits());

            var shepherd = system.ActorOf(villagerProps);
            shepherd.Tell(new ShepherdFlock());

            var lumberjack = system.ActorOf(villagerProps);
            lumberjack.Tell(new CutTrees());

            system.AwaitTermination();
        }
예제 #29
0
        public void RequestResponse()
        {
            ObjectFactory.Initialize(i => i.Scan(s =>
            {
                s.TheCallingAssembly();
                s.AddAllTypesOf((typeof(IAsyncRequestHandler <,>)));
            }));

            var resolver = new StructureMapDependencyResolver(ObjectFactory.Container);

            var query = new ExternalResourceQuery();

            var mediator = new Mediator(resolver);

            var task = mediator.RequestAsync(query);

            Assert.That(task.Result.Data, Is.EqualTo("success"));
            Assert.That(task.Result.HasException(), Is.False);
        }
예제 #30
0
		public static void Configure()
		{
			IoC.Container.Configure(cfg =>
			{
				cfg.Scan(scan =>
				{
					scan.TheCallingAssembly();
					scan.WithDefaultConventions();
				});

				cfg.AddRegistry(new ControllerRegistry());
				cfg.AddRegistry(new MvcRegistry());
				cfg.AddRegistry(new ActionFilterRegistry(namespacePrefix: "Web"));
				cfg.AddRegistry(new AspNetIdentityRegistry());
			});

			var resolver = new StructureMapDependencyResolver();
			DependencyResolver.SetResolver(resolver);
			GlobalConfiguration.Configuration.DependencyResolver = resolver;
		}
예제 #31
0
        public void Should_not_throw_exception_if_multiple_threads_inject_conext_into_singleton_dependency_resolver()
        {
            var container = new Container();
                container.Configure(c => c.Scan(s => {
                    s.AssemblyContainingType(GetType());
                    s.LookForRegistries();
                    s.WithDefaultConventions();
                }));

                _resolver = new StructureMapDependencyResolver(container);

                _resolver.AddDependency(typeof(IDependencyResolver),
                                        typeof(StructureMapDependencyResolver),
                                        DependencyLifetime.Singleton);
                _resolver.AddDependency(typeof(IPipeline), typeof(PipelineRunner),
                                        DependencyLifetime.Singleton);
                _resolver.AddDependency(typeof(ILogger), typeof(NullLogger),
                                        DependencyLifetime.Singleton);

                for (int i = 0; i < 200; i++) {
                    int errorCount = 0;
                    new Thread(() => {

                        try {
                            var context = new InMemoryCommunicationContext();
                            _resolver.AddDependencyInstance<ICommunicationContext>(context,DependencyLifetime.PerRequest);
                            _resolver.AddDependencyInstance<IRequest>(context.Request,DependencyLifetime.PerRequest);
                            _resolver.AddDependencyInstance<IResponse>(context.Response,DependencyLifetime.PerRequest);
                            _resolver.AddDependencyInstance<IHost>(new InMemoryHost(new ConfigurationSource()), DependencyLifetime.PerRequest);

                            _resolver.Resolve<ICommunicationContext>();

                        } catch (Exception) {
                            errorCount = errorCount +1 ;
                            throw;
                        }

                    }).Start();
                    Assert.That(errorCount, Is.EqualTo(0), "Some of the requests threw errors meaning that the dependencyresolver is not threadsafe ");
                }
        }
예제 #32
0
        protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();

            RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);

            //bundling css and javascript
            BundleConfig.RegisterBundles(BundleTable.Bundles);
            BundleTable.EnableOptimizations = false; //enabling bundling and minification

            //register classes and interfaces
            //StructureMap Container
            IContainer container = IoC.Initialize();

            //Register for MVC
            DependencyResolver.SetResolver(new StructureMapDependencyResolver(container));

            //Register for Web API
            var resolver = new StructureMapDependencyResolver(container);
        }
예제 #33
0
        static void Main(string[] args)
        {
            var system    = AkkaOfEmpiresSystem.Start();
            var container = GetDependencyContainer(system);
            var resolver  = new StructureMapDependencyResolver(container, system);

            var villagerProps = system.DI().Props <ConsoleVillagerActor>();
            var gatherer      = system.ActorOf(villagerProps);

            gatherer.Tell(new GatherFruits());

            var shepherd = system.ActorOf(villagerProps);

            shepherd.Tell(new ShepherdFlock());

            var lumberjack = system.ActorOf(villagerProps);

            lumberjack.Tell(new CutTrees());

            system.AwaitTermination();
        }
예제 #34
0
        public static void Configure()
        {
            ObjectFactory.Configure(cfg =>
            {
                cfg.Scan(scan =>
                {
                    scan.TheCallingAssembly();
                    scan.WithDefaultConventions();
                });

                cfg.AddRegistry(new ControllerRegistry());
                cfg.AddRegistry(new MvcRegistry());
                cfg.AddRegistry(new ActionFilterRegistry(namespacePrefix: "QueryEncapsulation.Web"));

                //TODO: Add other registries and configure your container!
            });

            var resolver = new StructureMapDependencyResolver();

            DependencyResolver.SetResolver(resolver);
            GlobalConfiguration.Configuration.DependencyResolver = resolver;
        }
예제 #35
0
파일: Startup.cs 프로젝트: amarano/Owin.IoC
        public void Configuration(IAppBuilder app)
        {
            var container = new Container(x =>
            {
                x.For<IWordFinder>().Use<WireCharacterNameFinder>();
            });

            var resolver = new StructureMapDependencyResolver(container);
            app.UseIoC(resolver);

            var httpConfig = new HttpConfiguration();
            httpConfig.Routes.MapHttpRoute(
                name: "DefaultApi",
                routeTemplate: "api/{controller}/{id}",
                defaults: new { id = RouteParameter.Optional, controller = "Default" }
            );

            app.UseOwinIoc(httpConfig);
            app.UseWebApi(httpConfig);

            // For more information on how to configure your application, visit http://go.microsoft.com/fwlink/?LinkID=316888
        }
예제 #36
0
        private static void WithHashPool()
        {
            IContainer container = new Container(cfg =>
            {
                cfg.For <TypedWorker>().Use <TypedWorker>().Named("TypedWorker").LifecycleIs <TransientLifecycle>();
            });

            using (var system = ActorSystem.Create("MySystem"))
            {
                var propsResolver =
                    new StructureMapDependencyResolver(container, system);

                var router = system.ActorOf(system.DI().Props <TypedWorker>().WithRouter(FromConfig.Instance), "router1");

                Task.Delay(500).Wait();
                Console.WriteLine("Sending Messages");
                for (var i = 0; i < 5; i++)
                {
                    for (var j = 0; j < 7; j++)
                    {
                        var msg = new TypedActorMessage {
                            Id = j, Name = Guid.NewGuid().ToString()
                        };
                        var ms = new AnotherMessage {
                            Id = j, Name = msg.Name
                        };

                        var envelope = new ConsistentHashableEnvelope(ms, msg.Id);

                        router.Tell(msg);
                        router.Tell(envelope);
                    }
                }
                Console.WriteLine("Hit Enter to exit");
                Console.ReadLine();
            }
        }
예제 #37
0
        private static void WithHashPool()
        {
            IContainer container = new Container(cfg =>
            {
                cfg.For<TypedWorker>().Use<TypedWorker>().Named("TypedWorker").LifecycleIs<TransientLifecycle>();
            });
            
            using (var system = ActorSystem.Create("MySystem"))
            {
                var propsResolver =
                    new StructureMapDependencyResolver(container, system);

                var router = system.ActorOf(system.DI().Props<TypedWorker>().WithRouter(FromConfig.Instance), "router1");

                Task.Delay(500).Wait();
                Console.WriteLine("Sending Messages");
                for (var i = 0; i < 5; i++)
                {
                    for (var j = 0; j < 7; j++)
                    {

                        var msg = new TypedActorMessage { Id = j, Name = Guid.NewGuid().ToString() };
                        var ms = new AnotherMessage { Id = j, Name = msg.Name };

                        var envelope = new ConsistentHashableEnvelope(ms, msg.Id);

                        router.Tell(msg);
                        router.Tell(envelope);

                    }
                }
                Console.WriteLine("Hit Enter to exit");
                Console.ReadLine();
            }


        }
예제 #38
0
        public void Notification()
        {
            var handled = new List <int>();

            ObjectFactory.Initialize(i =>
            {
                i.Scan(s =>
                {
                    s.TheCallingAssembly();
                    s.AddAllTypesOf((typeof(INotificationHandler <>)));
                });
                i.For <IList>().Use(handled);
            });

            var resolver = new StructureMapDependencyResolver(ObjectFactory.Container);

            var notification = new Notification();

            var mediator = new Mediator(resolver);

            mediator.Notify(notification);

            CollectionAssert.AreEquivalent(handled, new[] { 1, 2 });
        }
예제 #39
0
 public WebUITask(StructureMapDependencyResolver resolver)
 {
     _resolver = resolver;
 }
예제 #40
0
        public void Should_not_throw_exception_when_multiple_threads_manipulate_the_Dependency_resolver()
        {
            int errorCount = 0;

                for(int i=0; i<1000; i++ ) {

                    new Thread(() =>{
                        var container = new Container();
                        container.Configure(c => c.Scan(s => {
                            s.AssemblyContainingType(GetType());
                            s.LookForRegistries();
                            s.WithDefaultConventions();
                        }));

                        _resolver = new StructureMapDependencyResolver(container);
                        _resolver.AddDependency(typeof(IDependencyResolver),
                                                typeof(StructureMapDependencyResolver),
                                                DependencyLifetime.Singleton);
                        _resolver.AddDependency(typeof(IPipeline), typeof(PipelineRunner),
                                                DependencyLifetime.Singleton);
                        _resolver.AddDependency(typeof(ILogger), typeof(NullLogger),
                                                DependencyLifetime.Singleton);

                        try {
                            _resolver.Resolve<IPipeline>();
                        } catch (Exception) {
                            errorCount++;
                            throw;
                        }

                    }).Start();
                }

                Assert.That(errorCount, Is.EqualTo(0), "Some of the requests threw errors meaning that the dependencyresolver is not threadsafe ");
        }