private void RegisterServicesAndPlugins()
        {
            var registrations = new Registrations();

            // (don't care about sql version for rule configuration)
            registrations.RegisterServices(SqlVersion.Sql120, false);

            var pluginLoader      = IocContainer.Instance.Resolve <IPluginLoaderService>();
            var pluginLoadResults = pluginLoader.LoadPlugins();

            foreach (var pluginLoadResult in pluginLoadResults)
            {
                if (pluginLoadResult.SuccessfullyLoaded)
                {
                    var ruleTypes = pluginLoadResult.PluginServices.GetRuleTypes();
                    registrations.RegisterRuleTypes(ruleTypes);

                    var configControlTypes = pluginLoadResult.PluginServices.GetConfigControlTypes();
                    registrations.RegisterConfigControlTypes(configControlTypes);
                }
            }
            IocContainer.Instance.VerifyResolutions();

            // Todo improve...
            IocContainer.Instance.Register <IWinFormsRuleConfigurationControl, RuleConfigurationControl>(setup: Setup.With(allowDisposableTransient: true));
        }