void Common.IContainer.Configure(Type component, DependencyLifecycle dependencyLifecycle) { lock (configuredInstances) { if (configuredInstances.ContainsKey(component)) { return; } } var lifecycle = GetLifecycleFrom(dependencyLifecycle); ConfiguredInstance configuredInstance = null; container.Configure(x => { configuredInstance = x.For(component) .LifecycleIs(lifecycle) .Use(component); x.EnableSetterInjectionFor(component); foreach (var implementedInterface in GetAllInterfacesImplementedBy(component)) { x.RegisterAdditionalInterfaceForPluginType(implementedInterface, component, lifecycle); x.EnableSetterInjectionFor(implementedInterface); } }); lock (configuredInstances) configuredInstances.Add(component, configuredInstance); }
/// <summary> /// Configures services needed by event store. /// </summary> /// <param name="container">The container.</param> protected virtual void ConfigureEventStore(IContainer container) { container.Configure(x => x.For <IUnitOfWork>().HybridHttpOrThreadLocalScoped().Use <UnitOfWork>()); container.Configure(x => x.For <IUnitOfWorkProvider>().Singleton().Use <UnitOfWorkProvider>()); container.Configure(x => x.For <IEventStoreFactory>().Singleton().Use <EventStoreFactory>()); container.Configure(x => x.For <IEventStoreRepository>().HybridHttpOrThreadLocalScoped().Use <EventStoreRepository>()); container.Configure(x => x.For <IDetectConflicts>().Use <EmptyConflictDetector>()); }
/// <summary> /// Configures the security. /// </summary> /// <param name="appContainer">The app container.</param> protected virtual void ConfigureSecurity(IContainer appContainer) { appContainer.Configure(c => c.For <ICurrentUserPermissionService>().Use <CurrentUserPermissionService>()); appContainer.Configure(c => c.For <ICurrentClaimsPrincipalService>().Use <CurrentClaimsPrincipleService>()); appContainer.Configure(c => c.For <IAccessControlManager>().Singleton().Use <ProCenterAccessControlManager>()); appContainer.Configure(c => c.For <IProvidePermissions>().Use(conf => conf.GetInstance <IAccessControlManager>() as IProvidePermissions)); var accessCtrlMgr = appContainer.GetInstance <IAccessControlManager>(); var permissionDescriptors = appContainer.GetAllInstances <IPermissionDescriptor>(); accessCtrlMgr.RegisterPermissionDescriptor(permissionDescriptors.ToArray()); }
public IServiceRegister Register <TService>(Func <IServiceProvider, TService> serviceCreator) where TService : class { if (ServiceRegistered <TService>()) { return(this); } structureMapContainer.Configure( c => c.For <TService>().Singleton().Use(() => serviceCreator(this)) ); return(this); }
public static void ConfigureGoogleDependencies(this StructureMap.IContainer container, StructureMapBootStrapper.DependencyType type) { switch (type) { case StructureMapBootStrapper.DependencyType.TEST: container.Configure(ConfigureLive); // no test mode yet break; case StructureMapBootStrapper.DependencyType.LIVE: container.Configure(ConfigureLive); break; } }
public void Register(Type plugin, Type concrete, bool singleton) { _container.Configure(x => { if (singleton) { x.ForSingletonOf(plugin).Use(concrete); } else { x.For(plugin).Use(concrete); } }); }
private void BootstrapContainer() { _container = new StructureMap.Container(); _container.Configure(x => { x.For <IConfiguration>() .Singleton() .Use <Configuration>(); }); var registry = new SystemViewRegistry(_container); _container.Configure(x => x.AddRegistry(registry)); }
private static void InitializeAndRegisterPersistenceStuff(IContainer container) { var configurationProvider = container.GetInstance <IConfigurationProvider> (); var configuration = configurationProvider.Configure().GetEnumerator().Current; configuration.SetProperty( Environment.CurrentSessionContextClass, "uNhAddIns.SessionEasier.Contexts.ThreadLocalSessionContext, uNhAddIns"); var sessionFactoryProvider = new SessionFactoryProvider(configurationProvider); sessionFactoryProvider.Initialize(); container.Configure(x => x.For <ISessionFactoryProvider> ().Singleton().Use(sessionFactoryProvider)); container.Configure(x => x.For <ISessionProvider> ().Use <SessionProvider> ()); }
private static void ConfigureServiceLocator(IContainer container) { var structureMapPillarContainer = new Pillar.IoC.StructureMap.Container(container); IoC.SetContainerProvider(() => structureMapPillarContainer); container.Configure(c => c.For <Pillar.Common.InversionOfControl.IContainer> ().Singleton().Use(IoC.CurrentContainer)); }
private void RegisterIRequestHandlerOfGetRequestDtoByKey(IContainer container) { var assemblyLocator = container.GetInstance <IAssemblyLocator>(); var assemblies = assemblyLocator.LocateWebServiceAssemblies(); foreach (var assembly in assemblies) { Logger.Debug("Registering IRequestHandler<GetDtoRequestByKey<TDto>> instance in DI container: {0}.", assembly); var dtoTypes = from dtoType in assembly.GetTypes() where dtoType.IsSubclassOf(typeof(KeyedDataTransferObject)) && !dtoType.IsAbstract select dtoType; foreach (var dtoType in dtoTypes) { var openGetDtoRequestType = typeof(GetDtoRequest <>); var closedGetDtoRequestType = openGetDtoRequestType.MakeGenericType(dtoType); var openGetDtoByKeyRequestHandlerType = typeof(GetDtoByKeyRequestHandler <>); var closedGetDtoByKeyRequestHandlerType = openGetDtoByKeyRequestHandlerType.MakeGenericType(dtoType); var openRequestHandlerInterfaceType = typeof(IRequestHandler <>); var closedGetDtoByKeyRequestHandlerInterfaceType = openRequestHandlerInterfaceType.MakeGenericType(closedGetDtoRequestType); if (!container.Model.HasDefaultImplementationFor(closedGetDtoByKeyRequestHandlerInterfaceType)) { container.Configure( c => c.For(closedGetDtoByKeyRequestHandlerInterfaceType).Use( p => PillarIoC.CurrentContainer.Resolve(closedGetDtoByKeyRequestHandlerType))); } } } }
/// <summary> /// Configures the security. /// </summary> /// <param name="appContainer">The app container.</param> protected virtual void ConfigureSecurity(IContainer appContainer) { appContainer.Configure(c => c.For <ICurrentUserPermissionService>().Use <CurrentUserPermissionService>()); var accessCtrlMgr = appContainer.GetInstance <IAccessControlManager> (); var permissionDescriptors = appContainer.GetAllInstances <IPermissionDescriptor> (); accessCtrlMgr.RegisterPermissionDescriptor(permissionDescriptors.ToArray()); }
/// <summary> /// Configures the raven db. /// </summary> /// <param name="container">The container.</param> protected virtual void ConfigureRavenDb(IContainer container) { ForceLoadingRavenDbAssemblies(); var appsettingsProvider = container.GetInstance <IConfigurationPropertiesProvider> (); var ravenDbUrl = appsettingsProvider.GetProperty("RavenDBUrl"); var runInMemory = appsettingsProvider.GetProperty("RavenDBRunInMemory"); IDocumentStore store = runInMemory.ToLower() == "true" ? new EmbeddableDocumentStore { RunInMemory = true } : new DocumentStore { Url = ravenDbUrl }; store.Initialize(); container.Configure(c => c.For <IDocumentStore> ().Singleton().Use(store)); RegisterDocumentSessionProvider(container); container.Configure(c => c.For <IDocumentSessionProvider> ().HttpContextScoped().Use <DocumentSessionProvider> ()); }
public MaintainProductConfigurationTests() { var mockSession = new Mock<ISessionState>(); mockSession.Setup(x => x.Store(It.IsAny<string>(), It.IsAny<object>())).Callback<string, object>( (x, y) => _sessionStore[x] = y); mockSession.Setup(x => x.Get(It.IsAny<string>())).Returns<string>(x => { object result = null; _sessionStore.TryGetValue(x, out result); return result; }); var provider = new SessionDataProvider<ProductConfigSessionData>(mockSession.Object); _container = new Container(); _container.Configure(x => x.For<ISessionDataProvider<ProductConfigSessionData>>().Use(() => provider)); }
private static void InitializeAndRegisterPersistenceStuff( IContainer container ) { var configurationProvider = container.GetInstance<IConfigurationProvider> (); var configuration = configurationProvider.Configure ().GetEnumerator ().Current; configuration.SetProperty ( Environment.CurrentSessionContextClass, "uNhAddIns.SessionEasier.Contexts.ThreadLocalSessionContext, uNhAddIns" ); var sessionFactoryProvider = new SessionFactoryProvider ( configurationProvider ); sessionFactoryProvider.Initialize (); container.Configure ( x => x.For<ISessionFactoryProvider> ().Singleton ().Use ( sessionFactoryProvider ) ); container.Configure ( x => x.For<ISessionProvider> ().Use<SessionProvider> () ); }
public void Register <T>(T instance) where T : class { _container.Configure(x => x.For <T>().Use(instance)); }
public void Register(Type componentType, Type implementationType, Lifestyle lifeStyle) { structureMapContainer.Configure(x => x.For(componentType).LifecycleIs(lifeStyleMappings[lifeStyle]).Use(implementationType)); OverrideConstructorResolvingWhenUsingRequestProcessorProxy(implementationType); }
/// <summary> /// Registers the domain event service. /// </summary> /// <param name="container">The container.</param> protected virtual void RegisterDomainEventService(IContainer container) { //Domain Event Service - per request scope container.Configure(c => c.For <IDomainEventService>().HttpContextScoped().Use <DomainEventService>()); }
/// <summary> /// Registers the domain event service. /// </summary> /// <param name="container">The container.</param> protected virtual void RegisterDomainEventService(IContainer container) { //Domain Event Service - per request scope container.Configure(c => c.For <ICommitDomainEventService>().Singleton().Use <CommitDomainEventService>()); container.Configure(c => c.For <IDomainEventService>().Use(context => context.GetInstance <ICommitDomainEventService>())); }
private static void ConfigureServiceLocator( IContainer container ) { var structureMapPillarContainer = new Pillar.IoC.StructureMap.Container ( container ); IoC.SetContainerProvider ( () => structureMapPillarContainer ); container.Configure ( c => c.For<Pillar.Common.InversionOfControl.IContainer> ().Singleton ().Use ( IoC.CurrentContainer ) ); }
/// <summary> /// Configures the raven db. /// </summary> /// <param name="container">The container.</param> protected virtual void ConfigureRavenDb(IContainer container) { ForceLoadingRavenDbAssemblies (); var appsettingsProvider = container.GetInstance<IConfigurationPropertiesProvider> (); var ravenDbUrl = appsettingsProvider.GetProperty ( "RavenDBUrl" ); var runInMemory = appsettingsProvider.GetProperty ( "RavenDBRunInMemory" ); IDocumentStore store = runInMemory.ToLower () == "true" ? new EmbeddableDocumentStore { RunInMemory = true } : new DocumentStore { Url = ravenDbUrl }; store.Initialize (); container.Configure ( c => c.For<IDocumentStore> ().Singleton ().Use ( store ) ); RegisterDocumentSessionProvider ( container ); container.Configure ( c => c.For<IDocumentSessionProvider> ().HttpContextScoped ().Use<DocumentSessionProvider> () ); }
private void RegisterIRequestHandlerOfGetRequestDtoByKey(IContainer container) { var assemblyLocator = container.GetInstance<IAssemblyLocator>(); var assemblies = assemblyLocator.LocateWebServiceAssemblies(); foreach (var assembly in assemblies) { Logger.Debug("Registering IRequestHandler<GetDtoRequestByKey<TDto>> instance in DI container: {0}.", assembly); var dtoTypes = from dtoType in assembly.GetTypes() where dtoType.IsSubclassOf(typeof(KeyedDataTransferObject)) && !dtoType.IsAbstract select dtoType; foreach (var dtoType in dtoTypes) { var openGetDtoRequestType = typeof(GetDtoRequest<>); var closedGetDtoRequestType = openGetDtoRequestType.MakeGenericType(dtoType); var openGetDtoByKeyRequestHandlerType = typeof(GetDtoByKeyRequestHandler<>); var closedGetDtoByKeyRequestHandlerType = openGetDtoByKeyRequestHandlerType.MakeGenericType(dtoType); var openRequestHandlerInterfaceType = typeof(IRequestHandler<>); var closedGetDtoByKeyRequestHandlerInterfaceType = openRequestHandlerInterfaceType.MakeGenericType(closedGetDtoRequestType); if (!container.Model.HasDefaultImplementationFor(closedGetDtoByKeyRequestHandlerInterfaceType)) { container.Configure( c => c.For(closedGetDtoByKeyRequestHandlerInterfaceType).Use( p => PillarIoC.CurrentContainer.Resolve(closedGetDtoByKeyRequestHandlerType))); } } } }
/// <summary> /// Configures the security. /// </summary> /// <param name="appContainer">The app container.</param> protected virtual void ConfigureSecurity( IContainer appContainer ) { appContainer.Configure ( c => c.For<ICurrentUserPermissionService>().Use<CurrentUserPermissionService>() ); var accessCtrlMgr = appContainer.GetInstance<IAccessControlManager> (); var permissionDescriptors = appContainer.GetAllInstances<IPermissionDescriptor> (); accessCtrlMgr.RegisterPermissionDescriptor ( permissionDescriptors.ToArray () ); }