public void LoadServices() { _services = new List<Service>(); _services.Add(new Logger(this)); // Must be loaded first - must not send out error log events // Exceptions may be thrown beyond this point to indicate errors during initialization var cs = new ConnectionService(this); var disp = new EventDispatcher(this); _services.Add(cs); _services.Add(disp); PluginLoader loader = new PluginLoader(this, cs, disp); var plugins = loader.GetPluginInstances(); disp.InsertPlugins(plugins); }