internal class DefaultBootstrapper : DefaultNancyBootstrapper { public override void Configure(INancyEnvironment environment) { environment.Tracing(true, true); base.Configure(environment); } protected override void ConfigureConventions(NancyConventions nancyConventions) { new IConvention[] { new DefaultAcceptHeaderCoercionConventions(), new DefaultCultureConventions(), new DefaultStaticContentsConventions(), new DefaultViewLocationConventions(), }.ForEach(x => x.Initialise(nancyConventions)); } protected override Func InternalConfiguration => NancyInternalConfiguration.WithOverrides(ApplyInternalConfiguration); protected virtual void ApplyInternalConfiguration(NancyInternalConfiguration config) { config.DefaultConfigurationProviders = new List { typeof(DefaultDiagnosticsConfigurationProvider), typeof(DefaultGlobalizationConfigurationProvider), typeof(DefaultJsonConfigurationProvider), typeof(DefaultRouteConfigurationProvider), typeof(DefaultStaticContentConfigurationProvider), typeof(DefaultTraceConfigurationProvider), typeof(DefaultViewConfigurationProvider), typeof(DefaultXmlConfigurationProvider) }; config.CultureService = typeof(CultureService); config.StaticContentProvider = typeof(DisabledStaticContentProvider); } /// /// Overriding this method to ensure that the base method is not called as we do not /// want assembly scanning to occur. /// /// protected override void ConfigureApplicationContainer(TinyIoCContainer container) { } private class CultureService : ICultureService { public CultureInfo DetermineCurrentCulture(NancyContext context) { return CultureInfo.InstalledUICulture; } } }