private void _serverMain()
            {
                try
                {
                    IoCManager.InitThread(DependencyCollection);
                    ServerEntryPoint.RegisterIoC();
                    IoCManager.BuildGraph();
                    ServerEntryPoint.SetupLogging();
                    ServerEntryPoint.InitReflectionManager();

                    var server = DependencyCollection.Resolve <IBaseServerInternal>();

                    server.ContentRootDir = "../../";

                    if (server.Start())
                    {
                        throw new Exception("Server failed to start.");
                    }

                    var gameLoop = new IntegrationGameLoop(
                        DependencyCollection.Resolve <IGameTiming>(),
                        _toInstanceChannel, _fromInstanceChannel);
                    server.OverrideMainLoop(gameLoop);

                    server.MainLoop();
                }
                catch (Exception e)
                {
                    _fromInstanceChannel.PushMessage(new ShutDownMessage(e));
                    return;
                }

                _fromInstanceChannel.PushMessage(new ShutDownMessage(null));
            }
            private void _serverMain()
            {
                try
                {
                    IoCManager.InitThread(DependencyCollection);
                    ServerEntryPoint.RegisterIoC();
                    IoCManager.Register <INetManager, IntegrationNetManager>(true);
                    IoCManager.Register <IServerNetManager, IntegrationNetManager>(true);
                    IoCManager.Register <IntegrationNetManager, IntegrationNetManager>(true);
                    IoCManager.Register <ICommandLineArgs, CommandLineArgs>(true);
                    _options?.InitIoC?.Invoke();
                    IoCManager.BuildGraph();
                    ServerEntryPoint.SetupLogging();
                    ServerEntryPoint.InitReflectionManager();

                    var server = DependencyCollection.Resolve <IBaseServerInternal>();

                    server.ContentRootDir = "../../";

                    _options?.BeforeStart?.Invoke();
                    if (server.Start())
                    {
                        throw new Exception("Server failed to start.");
                    }

                    var gameLoop = new IntegrationGameLoop(
                        DependencyCollection.Resolve <IGameTiming>(),
                        _fromInstanceWriter, _toInstanceReader);
                    server.OverrideMainLoop(gameLoop);

                    server.MainLoop();
                }
                catch (Exception e)
                {
                    _fromInstanceWriter.TryWrite(new ShutDownMessage(e));
                    return;
                }

                _fromInstanceWriter.TryWrite(new ShutDownMessage(null));
            }