public static ConfigurationsScannerResult GetConfigurationFiltered(Type configType)
        {
            if (AssemblyScannerUtils.Inherits <IConfigurationBase>(configType))
            {
                var section = Attribute.GetCustomAttribute(configType, typeof(ConfigurationSectionAttribute)) as ConfigurationSectionAttribute;
                if (section != null)
                {
                    return(new ConfigurationsScannerResult(configType, section.Section));
                }
            }

            return(null);
        }
        public static ServicesScannerResult GetImplementationsFiltered <T>(Type checkingType, bool includeGivenType = false) where T : IInjectableService
        {
            var findType = typeof(T);

            if (AssemblyScannerUtils.IsImplementationOfType <T>(checkingType))
            {
                var interfaces = checkingType.GetInterfaces()
                                 .Where(t => AssemblyScannerUtils.Inherits <T>(t))
                                 .Where(t => includeGivenType || t != findType)
                                 .Distinct().ToList();
                if (interfaces.Any())
                {
                    return(new ServicesScannerResult(checkingType, interfaces));
                }
            }
            return(null);
        }