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)); }