public CecilTypeSystem(IEnumerable <string> paths, string targetPath = null) { if (targetPath != null) { paths = paths.Concat(new[] { targetPath }); } _resolver = new CustomMetadataResolver(this); _typeCache = new CecilTypeCache(this); foreach (var path in paths.Distinct()) { var isTarget = path == targetPath; var asm = AssemblyDefinition.ReadAssembly(path, new ReaderParameters(ReadingMode.Deferred) { ReadWrite = isTarget, InMemory = true, AssemblyResolver = this, MetadataResolver = _resolver, ThrowIfSymbolsAreNotMatching = false, SymbolReaderProvider = isTarget ? new DefaultSymbolReaderProvider(false) : null, ApplyWindowsRuntimeProjections = false }); var wrapped = RegisterAssembly(asm); if (path == targetPath) { TargetAssembly = wrapped; TargetAssemblyDefinition = asm; } } }
public CecilTypeSystem(IEnumerable <string> paths, string targetPath = null) { if (targetPath != null) { paths = paths.Concat(new[] { targetPath }); } _resolver = new CustomMetadataResolver(this); _typeCache = new CecilTypeCache(this); foreach (var path in paths.Distinct()) { var asm = AssemblyDefinition.ReadAssembly(path, new ReaderParameters(ReadingMode.Deferred) { ReadWrite = path == targetPath, InMemory = true, AssemblyResolver = this, MetadataResolver = _resolver, }); RegisterAssembly(asm); } }