using System; using System.Collections.Generic; using System.Linq; using System.Text; using Microsoft.Practices.ServiceLocation; using NHibernate; using NHibernate.Cfg; using StructureMap; using StructureMap.Attributes; using StructureMap.ServiceLocatorAdapter; using Taloyhtio.GeneralSSO.Server.CodeFiles.Infrastructure.DataAccess; using Taloyhtio.GeneralSSO.Server.CodeFiles.Infrastructure.DataAccess.Impl; using Taloyhtio.GeneralSSO.Server.CodeFiles.Repositories; using Taloyhtio.GeneralSSO.Server.CodeFiles.Repositories.Impl; using Taloyhtio.GeneralSSO.Server.CodeFiles.Services; using Taloyhtio.GeneralSSO.Server.CodeFiles.Services.Impl; namespace GeneralApi.Core.Infrastructure.IoC { public class IoCConfiguration { public static void Configure() { ObjectFactory.Configure( x => { x.ForRequestedType() .TheDefaultIsConcreteType(); x.ForRequestedType() .TheDefaultIsConcreteType() .AsSingletons(); x.ForRequestedType().AsSingletons() .TheDefault.Is.ConstructedBy(ctx => NHConfiguration.Configure()); x.ForRequestedType().AsSingletons() .TheDefault.Is.ConstructedBy(ctx => ctx.GetInstance().BuildSessionFactory()); // x.ForRequestedType().AsSingletons() // .TheDefault.Is.ConstructedBy(ctx => ctx.GetInstance().OpenSession()); x.ForRequestedType() .TheDefaultIsConcreteType() .AsSingletons(); // x.ForRequestedType() // .TheDefaultIsConcreteType() // .CacheBy(InstanceScope.Hybrid); x.ForRequestedType() .TheDefaultIsConcreteType(); x.ForRequestedType() .TheDefaultIsConcreteType(); x.ForRequestedType() .TheDefaultIsConcreteType(); x.ForRequestedType() .TheDefaultIsConcreteType(); x.ForRequestedType() .TheDefaultIsConcreteType(); }); var locator = new StructureMapServiceLocator(ObjectFactory.Container); ServiceLocator.SetLocatorProvider(() => locator); } } }