public static void Initialize(ApplicationConfiguration config) { ApplicationConfiguration = config; SessionFactory = CreateSessionFactory(); var assembly = System.Reflection.Assembly.Load("Web.Generics.IoC.StructureMap, Version=3.1.0.0, Culture=neutral, PublicKeyToken=36a1643a1b1a06e1"); Type containerType = assembly.GetType("Web.Generics.Infrastructure.InversionOfControl.StructureMap.StructureMapInversionOfControlContainer"); Container = (IInversionOfControlContainer)Activator.CreateInstance(containerType); Container = (IInversionOfControlContainer)Activator.CreateInstanceFrom(Path.Combine(config.ApplicationRootDir, "Web.Generics.IoC.StructureMap.dll"), "Web.Generics.Infrastructure.InversionOfControl.StructureMap.StructureMapInversionOfControlContainer").Unwrap(); Container = (IInversionOfControlContainer)Activator.CreateInstanceFrom("Web.Generics.IoC.StructureMap.dll", "Web.Generics.Infrastructure.InversionOfControl.StructureMap.StructureMapInversionOfControlContainer").Unwrap(); Container.RegisterType<IRepositoryContext, NHibernateRepositoryContext>(); Container.RegisterType(typeof(IRepository<>), typeof(GenericNHibernateRepository<>)); Container.RegisterDelayedInstance<ISession>(() => { return ApplicationManager.SessionFactory.GetCurrentSession(); }); var mapper = config.InversionOfControl.MapperInstance; if (mapper != null) { mapper.DefineMappings(Container); } log4net.Config.XmlConfigurator.Configure(); }
static ApplicationManager() { ApplicationConfiguration = new ApplicationConfiguration(); }