private void InitializeUrlParser(IServiceContainer container) { var config = container.Resolve <HostSection>(); IUrlParser parser; if (config.MultipleSites) { parser = new MultipleSitesParser(container.Resolve <IPersister>(), container.Resolve <IWebContext>(), container.Resolve <IHost>(), container.Resolve <Plugin.ConnectionMonitor>(), config); } else { parser = new UrlParser(container.Resolve <IPersister>(), container.Resolve <IWebContext>(), container.Resolve <IHost>(), container.Resolve <Plugin.ConnectionMonitor>(), config); } if (config.Web.Urls.EnableCaching) { parser = new CachingUrlParserDecorator(parser, container.Resolve <IPersister>(), container.Resolve <IWebContext>(), container.Resolve <CacheWrapper>(), config); } container.AddComponentInstance("n2.urlParser", typeof(IUrlParser), parser); }