private WorkflowsConfig GetConfigurations(DirectoryInfo d, string extension) { if (!extension.StartsWith("*.")) { if (extension.StartsWith(".")) { extension = "*" + extension; } else { extension = "*." + extension; } } WorkflowsConfig configs = new WorkflowsConfig(); Func <WorkflowConfigVisitor> f = () => { WorkflowConfigVisitor visitor = new WorkflowConfigVisitor(); foreach (var method in this._methods) { visitor.AddRule(method.Key, method.Value); } return(visitor); }; var files = d.GetFiles(extension, SearchOption.AllDirectories).ToList(); HashSet <string> _paths = new HashSet <string>(); foreach (var item in files) { if (_paths.Add(item.Directory.FullName)) { WorkflowsConfigLoader.Load(configs, f, item.Directory.FullName, extension, null, null); } } return(configs); }