public FileDisassemblerHelper( SimpleReflector reflector, ProjectTypes projectType, string outputDirectory, WriteLineDelegate writeLineDelegate, SetProgressBarDelegate setProgressBarDelegate, IsCancelPendingDelegate isCancelPendingDelegate) { _reflector = reflector; _projectType = projectType; _outputDirectory = outputDirectory; WriteLine += writeLineDelegate; SetProgressBar += setProgressBarDelegate; _isCancelPendingDelegate = isCancelPendingDelegate; }
public List <MethodDeclarationInfo> FindMethods(string[] files, string[] searchFors, string[] searchForTypes, IProgressBar progress, IsCancelPendingDelegate isCancelPendingDelegate) { if (files == null || files.Length == 0) { return(null); } List <MethodDeclarationInfo> list = new List <MethodDeclarationInfo>(); for (int i = 0; i < files.Length; i++) { if (isCancelPendingDelegate != null && isCancelPendingDelegate()) { break; } list.AddRange(this.FindMethods(files[i], searchFors, searchForTypes, progress, isCancelPendingDelegate)); } return(list); }
public List <MethodDeclarationInfo> FindMethods(string fileName, string[] searchFors, string[] searchForTypes, IProgressBar progress, IsCancelPendingDelegate isCancelPendingDelegate) { List <MethodDeclarationInfo> list = new List <MethodDeclarationInfo>(); IAssembly assembly = this.LoadAssembly(fileName); if (assembly == null) { list.Add(new MethodDeclarationInfo(null, String.Format("Can't load assembly: {0}", fileName))); return(list); } if (!String.IsNullOrEmpty(assembly.Status)) { list.Add(new MethodDeclarationInfo(null, String.Format("Error when loading assembly: {0} ({1})", fileName, assembly.Status))); return(list); } foreach (IModule module in assembly.Modules) { int count = 0; if (isCancelPendingDelegate != null && isCancelPendingDelegate()) { break; } if (progress != null) { progress.InitProgress(0, module.Types.Count); progress.SetProgress(0); } foreach (ITypeDeclaration typeDeclaration in module.Types) { if (isCancelPendingDelegate != null && isCancelPendingDelegate()) { break; } string typeName = typeDeclaration.Name; if (searchForTypes != null) { foreach (string searchForType in searchForTypes) { if (typeName.IndexOf(searchForType, StringComparison.OrdinalIgnoreCase) >= 0) { FindMethods(typeDeclaration, searchFors, list); break; } } } else { FindMethods(typeDeclaration, searchFors, list); } count++; if (progress != null) { progress.SetProgress(count); } } } return(list); }
public List <MethodDeclarationInfo> FindMethods(string fileName, string[] searchFors, IProgressBar progress, IsCancelPendingDelegate isCancelPendingDelegate) { return(FindMethods(fileName, searchFors, null, progress, isCancelPendingDelegate)); }