private static void Code2Uml(IEnumerable<string> paths, string target) { foreach (string path in paths) { Console.WriteLine (path); Action<string> processFile = (filename) => { if (!filename.Contains ("gen")) { IParser parser = new CSharpParser (); IEnumerable<IUmlObject> objects = parser.Parse (filename); List<string> lines = new List<string> (); foreach (IUmlObject obj in objects) { lines.Add (obj.ToUmlCode ()); } string umlfile = filename.Replace (".cs", ".uml"); if (target.Length > 0) { umlfile = umlfile.ReplaceFirst (path, target + "/"); } Console.WriteLine ("Write: " + umlfile); Files.WriteLines (umlfile, lines); } }; Files.SearchFiles (path, new string[]{".cs"}, processFile); } }