/// <summary>Registers the type mappings with the Unity container.</summary> /// <param name="container">The unity container to configure.</param> /// <remarks>There is no need to register concrete types such as controllers or API controllers (unless you want to /// change the defaults), as Unity allows resolving a concrete type even if it was not previously registered.</remarks> public static void RegisterTypes(IUnityContainer container) { // NOTE: To load from web.config uncomment the line below. Make sure to add a Microsoft.Practices.Unity.Configuration to the using statements. // container.LoadConfiguration(); container.RegisterType <ITemplateRepository, TerrificTemplateRepository>(); container .RegisterType <ITerrificTemplateHandlerFactory, GenericUnityTerrificTemplateHandlerFactory <MvcTerrificTemplateHandler> >(); container.RegisterType <INamingRule, NamingRule>(); container.RegisterType <IModelTypeProvider>(new InjectionFactory(u => new StaticModelTypeProvider("TerrificNet.Sample.Net.Models", "TerrificNet.Sample.Net.Models", u.Resolve <INamingRule>(), u.Resolve <ISchemaProvider>()))); var rootPath = HostingEnvironment.MapPath("~/"); var fileSystem = new FileSystem(Path.Combine(rootPath, @"..\TerrificNet.Sample")); container.RegisterInstance <IFileSystem>(fileSystem); var config = ConfigurationLoader.LoadTerrificConfiguration(string.Empty, fileSystem); DefaultUnityModule.RegisterForConfiguration(container, config); }
public static UnityContainer Initialize(string path, TerrificNetHostConfiguration configuration, ServerConfiguration serverConfiguration) { var container = new UnityContainer(); container.RegisterType <ITerrificTemplateHandler, DefaultTerrificTemplateHandler>(); container .RegisterType //<ITerrificTemplateHandlerFactory, GenericUnityTerrificTemplateHandlerFactory<DefaultTerrificTemplateHandler>>(); <ITerrificTemplateHandlerFactory, GenericUnityTerrificTemplateHandlerFactory <PageEditDefaultTerrificTemplateHandler> >(); container.RegisterType <INamingRule, NamingRule>(); container.RegisterInstance(serverConfiguration); new DefaultUnityModule().Configure(container); #if DEBUG container.RegisterInstance <IFileSystem>(new FileSystem(path)); #else container.RegisterInstance <IFileSystem>(new EmbeddedResourceFileSystem(typeof(WebInitializer).Assembly)); #endif foreach (var item in configuration.Applications.Values) { var childContainer = container.CreateChildContainer(); var app = DefaultUnityModule.RegisterForApplication(childContainer, path, item.BasePath, item.ApplicationName, item.Section); container.RegisterInstance(item.ApplicationName, app); } foreach (var app in container.ResolveAll <TerrificNetApplication>()) { foreach (var template in app.Container.Resolve <ITemplateRepository>().GetAll()) { Console.WriteLine(template.Id); } } new TerrificBundleUnityModule().Configure(container); return(container); }