Beagrep.Daemon.FilterFactory.ScanAssemblyForFilters C# (CSharp) Метод

ScanAssemblyForFilters() приватный статический Метод

private static ScanAssemblyForFilters ( Assembly assembly, FilterCache filter_cache ) : int
assembly System.Reflection.Assembly
filter_cache FilterCache
Результат int
        private static int ScanAssemblyForFilters(Assembly assembly, FilterCache filter_cache)
        {
            int count = 0;

            foreach (Type t in ReflectionFu.GetTypesFromAssemblyAttribute (assembly, typeof (FilterTypesAttribute))) {
                Filter filter = null;

                try {
                    filter = (Filter) Activator.CreateInstance (t);
                } catch (Exception ex) {
                    Logger.Log.Error (ex, "Caught exception while instantiating {0}", t);
                }

                if (filter == null)
                    continue;

                filter_versions_by_name [t.ToString ()] = filter.Version;

                foreach (FilterFlavor flavor in filter.SupportedFlavors)
                    FilterFlavor.FilterTable [flavor] = t;

                ++count;
            }

            if (count > 0) {
                DateTime last_mtime = File.GetLastWriteTimeUtc (assembly.Location);
                filter_cache.RegisterFilter (assembly.Location, last_mtime);
            }

            return count;
        }