private static void CollectTypes(string assemblyPath, ITypeNotFoundErrorHandler typeNotFoundErrorHandler, TypeCollection typeCollection, ConfigBase config) { var assembly = Mono.Cecil.AssemblyDefinition.ReadAssembly(assemblyPath); typeCollection.AddAssembly(assembly); var typeWriterGenerator = new TypeWriterCollector(typeNotFoundErrorHandler, typeCollection.TypeSelector); foreach (var item in assembly.MainModule.Types) { typeWriterGenerator.Collect(item, typeCollection, config); } }
private static bool WriteFiles(IEnumerable<string> assemblyPaths, TextWriter w, ITypeNotFoundErrorHandler typeNotFoundErrorHandler, TypeCollection typeCollection, string filterRegex, ConfigBase config) { var filesAlreadyProcessed = new HashSet<string>(new IgnoreCaseStringEqualityComparer()); if (!assemblyPaths.Any()) return false; assemblyPaths.Each(assemblyPath => { if (filesAlreadyProcessed.Contains(assemblyPath)) return; filesAlreadyProcessed.Add(assemblyPath); CollectTypes(assemblyPath, typeNotFoundErrorHandler, typeCollection, config); }); var renderedOut = typeCollection.Render(filterRegex); w.WriteLine(renderedOut); return true; }
public TypeWriterCollector(ITypeNotFoundErrorHandler typeNotFoundErrorHandler, ITypeWriterTypeSelector typeSelector) { this.typeNotFoundErrorHandler = typeNotFoundErrorHandler; this.typeSelector = typeSelector; }
private static bool WriteFiles(IEnumerable <string> assemblyPaths, TextWriter w, ITypeNotFoundErrorHandler typeNotFoundErrorHandler, TypeCollection typeCollection, string filterRegex, ConfigBase config) { var filesAlreadyProcessed = new HashSet <string>(new IgnoreCaseStringEqualityComparer()); if (!assemblyPaths.Any()) { return(false); } assemblyPaths.Each(assemblyPath => { if (filesAlreadyProcessed.Contains(assemblyPath)) { return; } filesAlreadyProcessed.Add(assemblyPath); CollectTypes(assemblyPath, typeNotFoundErrorHandler, typeCollection, config); }); var renderedOut = typeCollection.Render(filterRegex); w.WriteLine(renderedOut); return(true); }