public static void Collect(this ITypeCollector collector, string fileName, Func <TypeDefinition, bool> filter = null) { var dir = Path.GetDirectoryName(fileName); using (var resolver = new DefaultAssemblyResolver()) { resolver.AddSearchDirectory(dir); var rparam = new ReaderParameters { AssemblyResolver = resolver }; using (var ass = AssemblyDefinition.ReadAssembly(fileName, rparam)) { if (filter == null) { collector.Collect(ass); return; } foreach (var type in ass.GetAllTypes()) { if (filter(type)) { collector.Collect(type); } } } } }
private void RewriteTypeNames(ITypeCollector collot, INamingStrategy nameStrategy, IDependencyReport report) { var mappings = collot.Types.ToDictionary(k => k, nameStrategy.GetName); var myTypes = report.Units.Values.SelectMany(v => v.Types.Values).ToArray(); ICodePatcher patcher = new CodePatcher(mappings); foreach (var map in mappings) { var typeName = map.Value; var type = myTypes.Single(t => $"{t.Namespace}.{t.Name}" == typeName); patcher.Patch(type); } }
public static void Collect <T>(this ITypeCollector collector) => collector.Collect(typeof(T));
public static void Collect(this ITypeCollector collector, Assembly ass, Func <TypeDefinition, bool> filter = null) { var file = Path.GetFullPath(ass.Location ?? ass.CodeBase); collector.Collect(file, filter); }
public static void Collect(this ITypeCollector collector, Type type) { var ass = type.Assembly; collector.Collect(ass, t => t.FullName == type.FullName); }
public CommandManager(IHeroManager heroManager, ITypeCollector typeCollector) : this(heroManager, typeCollector.GetAllInheritingTypes <ICommand>()) { }
public HeroManager(IEnumerable <IHero> heroes, ITypeCollector typeCollector) : this(heroes, typeCollector.GetAllInheritingTypes <IHero>()) { }