ResetInstance() публичный статический Метод

public static ResetInstance ( ) : HostConfig
Результат HostConfig
Пример #1
0
        /// <summary>
        /// Initializes the AppHost.
        /// Calls the <see cref="Configure"/> method.
        /// Should be called before start.
        /// </summary>
        public virtual ServiceStackHost Init()
        {
            if (Instance != null)
            {
                throw new InvalidDataException($"ServiceStackHost.Instance has already been set ({Instance.GetType().Name})");
            }

            Service.GlobalResolver = Instance = this;

            Config = HostConfig.ResetInstance();
            OnConfigLoad();

            AbstractVirtualFileBase.ScanSkipPaths = Config.ScanSkipPaths;
            ResourceVirtualDirectory.EmbeddedResourceTreatAsFiles = Config.EmbeddedResourceTreatAsFiles;

            Config.DebugMode = GetType().GetAssembly().IsDebugBuild();
            if (Config.DebugMode)
            {
                Plugins.Add(new RequestInfoFeature());
            }

            OnBeforeInit();
            ServiceController.Init();
            Configure(Container);

            if (Config.StrictMode == null && Config.DebugMode)
            {
                Config.StrictMode = true;
            }

            ConfigurePlugins();

            List <IVirtualPathProvider> pathProviders = null;

            if (VirtualFileSources == null)
            {
                pathProviders = GetVirtualFileSources().Where(x => x != null).ToList();

                VirtualFileSources = pathProviders.Count > 1
                    ? new MultiVirtualFiles(pathProviders.ToArray())
                    : pathProviders.First();
            }

            if (VirtualFiles == null)
            {
                VirtualFiles = pathProviders?.FirstOrDefault(x => x is FileSystemVirtualFiles) as IVirtualFiles
                               ?? GetVirtualFileSources().FirstOrDefault(x => x is FileSystemVirtualFiles) as IVirtualFiles;
            }

            OnAfterInit();

            LogInitComplete();

            HttpHandlerFactory.Init();

            return(this);
        }
Пример #2
0
        public virtual ServiceStackHost Init()
        {
            if (Instance != null)
            {
                throw new InvalidDataException("ServiceStackHost.Instance has already been set");
            }
            Service.GlobalResolver = Instance = this;

            Config = HostConfig.ResetInstance();
            OnConfigLoad();

            Config.DebugMode = GetType().Assembly.IsDebugBuild();
            if (Config.DebugMode)
            {
                Plugins.Add(new RequestInfoFeature());
            }

            OnBeforeInit();
            ServiceController.Init();
            Configure(Container);

            ConfigurePlugins();

            if (VirtualPathProvider == null)
            {
                var pathProviders = new List <IVirtualPathProvider> {
                    new FileSystemVirtualPathProvider(this, Config.WebHostPhysicalPath)
                };

                pathProviders.AddRange(Config.EmbeddedResourceBaseTypes.Distinct().Map(x =>
                                                                                       new ResourceVirtualPathProvider(this, x)));

                pathProviders.AddRange(Config.EmbeddedResourceSources.Distinct().Map(x =>
                                                                                     new ResourceVirtualPathProvider(this, x)));

                VirtualPathProvider = pathProviders.Count > 1
                    ? new MultiVirtualPathProvider(this, pathProviders.ToArray())
                    : pathProviders.First();
            }

            OnAfterInit();

            var elapsed = DateTime.UtcNow - this.StartedAt;

            Log.InfoFormat("Initializing Application took {0}ms", elapsed.TotalMilliseconds);

            return(this);
        }
Пример #3
0
        public virtual ServiceStackHost Init()
        {
            if (Instance != null)
            {
                throw new InvalidDataException("ServiceStackHost.Instance has already been set");
            }
            Service.GlobalResolver = Instance = this;

            Config = HostConfig.ResetInstance();
            OnConfigLoad();

            Config.DebugMode = GetType().Assembly.IsDebugBuild();
            if (Config.DebugMode)
            {
                Plugins.Add(new RequestInfoFeature());
            }

            OnBeforeInit();
            ServiceController.Init();
            Configure(Container);

            ConfigurePlugins();

            List <IVirtualPathProvider> pathProviders = null;

            if (VirtualFileSources == null)
            {
                pathProviders = GetVirtualFileSources().Where(x => x != null).ToList();

                VirtualFileSources = pathProviders.Count > 1
                    ? new MultiVirtualPathProvider(this, pathProviders.ToArray())
                    : pathProviders.First();
            }

            if (VirtualFiles == null)
            {
                VirtualFiles = (pathProviders != null ? pathProviders.FirstOrDefault(x => x is FileSystemVirtualPathProvider) : null) as IVirtualFiles
                               ?? GetVirtualFileSources().FirstOrDefault(x => x is FileSystemVirtualPathProvider) as IVirtualFiles;
            }

            OnAfterInit();

            LogInitComplete();

            return(this);
        }
Пример #4
0
        public virtual ServiceStackHost Init()
        {
            if (Instance != null)
            {
                throw new InvalidDataException("ServiceStackHost.Instance has already been set");
            }
            Service.GlobalResolver = Instance = this;

            Config = HostConfig.ResetInstance();
            OnConfigLoad();

            Config.DebugMode = GetType().Assembly.IsDebugBuild();
            if (Config.DebugMode)
            {
                Plugins.Add(new RequestInfoFeature());
            }

            OnBeforeInit();
            ServiceController.Init();
            Configure(Container);

            ConfigurePlugins();

            if (VirtualPathProvider == null)
            {
                var pathProviders = GetVirtualPathProviders();

                VirtualPathProvider = pathProviders.Count > 1
                    ? new MultiVirtualPathProvider(this, pathProviders.ToArray())
                    : pathProviders.First();
            }

            OnAfterInit();

            LogInitComplete();

            return(this);
        }
Пример #5
0
        /// <summary>
        /// Initializes the AppHost.
        /// Calls the <see cref="Configure"/> method.
        /// Should be called before start.
        /// </summary>
        public virtual ServiceStackHost Init()
        {
            if (Instance != null)
            {
                throw new InvalidDataException($"ServiceStackHost.Instance has already been set ({Instance.GetType().Name})");
            }

            Service.GlobalResolver = Instance = this;

            RegisterLicenseKey(AppSettings.GetNullableString("servicestack:license"));

            if (ServiceController == null)
            {
                ServiceController = CreateServiceController(ServiceAssemblies.ToArray());
            }

            Config = HostConfig.ResetInstance();
            OnConfigLoad();

            AbstractVirtualFileBase.ScanSkipPaths = Config.ScanSkipPaths;
            ResourceVirtualDirectory.EmbeddedResourceTreatAsFiles = Config.EmbeddedResourceTreatAsFiles;

            OnBeforeInit();
            ServiceController.Init();

            BeforeConfigure.Each(fn => fn(this));
            Configure(Container);
            AfterConfigure.Each(fn => fn(this));

            if (Config.StrictMode == null && Config.DebugMode)
            {
                Config.StrictMode = true;
            }

            if (!Config.DebugMode)
            {
                Plugins.RemoveAll(x => x is RequestInfoFeature);
            }

            ConfigurePlugins();

            List <IVirtualPathProvider> pathProviders = null;

            if (VirtualFileSources == null)
            {
                pathProviders = GetVirtualFileSources().Where(x => x != null).ToList();

                VirtualFileSources = pathProviders.Count > 1
                    ? new MultiVirtualFiles(pathProviders.ToArray())
                    : pathProviders.First();
            }

            if (VirtualFiles == null)
            {
                VirtualFiles = pathProviders?.FirstOrDefault(x => x is FileSystemVirtualFiles) as IVirtualFiles
                               ?? GetVirtualFileSources().FirstOrDefault(x => x is FileSystemVirtualFiles) as IVirtualFiles;
            }

            OnAfterInit();

            PopulateArrayFilters();

            LogInitComplete();

            HttpHandlerFactory.Init();

            return(this);
        }
Пример #6
0
        /// <summary>
        /// Initializes the AppHost.
        /// Calls the <see cref="Configure"/> method.
        /// Should be called before start.
        /// </summary>
        public virtual ServiceStackHost Init()
        {
            if (Instance != null)
            {
                throw new InvalidDataException($"ServiceStackHost.Instance has already been set ({Instance.GetType().Name})");
            }

            Service.GlobalResolver = Instance = this;

            //RegisterLicenseKey(AppSettings.GetNullableString("servicestack:license"));

            var scanAssemblies = new List <Assembly>(ServiceAssemblies);

            scanAssemblies.AddIfNotExists(GetType().Assembly);
            //var scanTypes = scanAssemblies.SelectMany(x => x.GetTypes())
            //    .Where(x => (x.HasInterface(typeof(IPreConfigureAppHost))
            //                 || x.HasInterface(typeof(IConfigureAppHost))
            //                 || x.HasInterface(typeof(IAfterInitAppHost))))
            //    .ToArray();

            //var startupConfigs = scanTypes.Where(x => !x.HasInterface(typeof(IPlugin)))
            //    .Select(x => x.CreateInstance()).WithPriority();
            //var configInstances = startupConfigs.PriorityOrdered();
            //var preStartupConfigs = startupConfigs.PriorityBelowZero();
            //var postStartupConfigs = startupConfigs.PriorityZeroOrAbove();

            //void RunPreConfigure(object instance)
            //{
            //    try
            //    {
            //        if (instance is IPreConfigureAppHost preConfigureAppHost)
            //            preConfigureAppHost.PreConfigure(this);
            //    }
            //    catch (Exception ex)
            //    {
            //        OnStartupException(ex);
            //    }
            //}
            //var priorityPlugins = Plugins.WithPriority().PriorityOrdered().Map(x => (IPlugin)x);
            //priorityPlugins.ForEach(RunPreConfigure);
            //configInstances.ForEach(RunPreConfigure);

            if (ServiceController == null)
            {
                ServiceController = CreateServiceController(ServiceAssemblies.ToArray());
            }

            Config = HostConfig.ResetInstance();
            OnConfigLoad();

            //AbstractVirtualFileBase.ScanSkipPaths = Config.ScanSkipPaths;
            //ResourceVirtualDirectory.EmbeddedResourceTreatAsFiles = Config.EmbeddedResourceTreatAsFiles;

            OnBeforeInit();
            ServiceController.Init();

            //void RunConfigure(object instance)
            //{
            //    try
            //    {
            //        //if (instance is IConfigureAppHost configureAppHost)
            //            //configureAppHost.Configure(this);
            //    }
            //    catch (Exception ex)
            //    {
            //        OnStartupException(ex);
            //    }
            //}
            //preStartupConfigs.ForEach(RunConfigure);
            //BeforeConfigure.Each(fn => fn(this));

            Configure(Container);

            //AfterConfigure.Each(fn => fn(this));

            //postStartupConfigs.ForEach(RunConfigure);

            if (Config.StrictMode == null && Config.DebugMode)
            {
                Config.StrictMode = true;
            }

            //if (!Config.DebugMode)
            //    Plugins.RemoveAll(x => x is RequestInfoFeature);

            //Some plugins need to initialize before other plugins are registered.
            Plugins.ToList().ForEach(RunPreInitPlugin);
            //configInstances.ForEach(RunPreInitPlugin);

            List <IVirtualPathProvider> pathProviders = null;

            if (VirtualFileSources == null)
            {
                pathProviders = GetVirtualFileSources().Where(x => x != null).ToList();

                //VirtualFileSources = pathProviders.Count > 1
                //    ? new MultiVirtualFiles(pathProviders.ToArray())
                //    : pathProviders.First();
            }

            //if (VirtualFiles == null)
            //    VirtualFiles = pathProviders?.FirstOrDefault(x => x is FileSystemVirtualFiles) as IVirtualFiles
            //        ?? GetVirtualFileSources().FirstOrDefault(x => x is FileSystemVirtualFiles) as IVirtualFiles;

            OnAfterInit();

            //configInstances.ForEach(RunPostInitPlugin);

            PopulateArrayFilters();

            LogInitComplete();

            HttpHandlerFactory.Init();

            foreach (var callback in AfterInitCallbacks)
            {
                callback(this);
            }

            Plugins.ForEach(RunAfterInitAppHost);
            //configInstances.ForEach(RunAfterInitAppHost);

            ReadyAt = DateTime.UtcNow;

            return(this);
        }