public void FilterOutIfNeeded() { var throwableClass = MainAssembly.GetClass("java.lang.Throwable"); if (throwableClass != null && throwableClass.Assembly == MainAssembly) { var list2 = new string[] { "java.lang.*", "java.lang.reflect.*", "java.lang.ref.*", "java.lang.annotation.*", "java.util.*", "java.util.concurrent.*", "java.util.jar.*", "java.util.regex.*", "java.math.*", "java.io.*", "java.nio.*", "java.net.*", }; var list = list2.Select(FindClasses).SelectMany(t => t).ToList(); var deps = DetectDependencies(list); var deps2 = deps.OrderBy(t => t.FullName).ToList(); MainAssembly.Classes.RemoveAll(t => !deps.Contains(t)); } }
IEnumerable <Class> FindClasses(string q) { if (q.EndsWith(".*")) { return(MainAssembly.Classes.Where(t => t.Namespace == q.Substring(0, q.Length - 2))); } return(new Class[] { MainAssembly.GetClass(q) }); }