public void LoadModule(System.IO.Stream dllStream, System.IO.Stream pdbStream) { this.module = Mono.Cecil.ModuleDefinition.ReadModule(dllStream); #if WITHPDB if (pdbStream != null) { var debugInfoLoader = new Mono.Cecil.Pdb.PdbReaderProvider(); module.ReadSymbols(debugInfoLoader.GetSymbolReader(module, pdbStream)); } #endif if (module.HasAssemblyReferences) { foreach (var ar in module.AssemblyReferences) { if (moduleref.Contains(ar.Name) == false) { moduleref.Add(ar.Name); } if (moduleref.Contains(ar.FullName) == false) { moduleref.Add(ar.FullName); } } } //mapModule[module.Name] = module; if (module.HasTypes) { foreach (var t in module.Types) { mapType[t.FullName] = new ILType(this, t); } } }
public void LoadModule(System.IO.Stream dllStream, string dir, System.IO.Stream pdbStream) { Mono.Cecil.DefaultAssemblyResolver resolver = new Mono.Cecil.DefaultAssemblyResolver(); Mono.Cecil.ReaderParameters p = new Mono.Cecil.ReaderParameters(); p.AssemblyResolver = resolver; resolver.AddSearchDirectory(dir); this.module = Mono.Cecil.ModuleDefinition.ReadModule(dllStream, p); #if WITHPDB if (pdbStream != null) { var debugInfoLoader = new Mono.Cecil.Pdb.PdbReaderProvider(); module.ReadSymbols(debugInfoLoader.GetSymbolReader(module, pdbStream)); } #endif if (module.HasAssemblyReferences) { foreach (var ar in module.AssemblyReferences) { if (moduleref.Contains(ar.Name) == false) { moduleref.Add(ar.Name); } if (moduleref.Contains(ar.FullName) == false) { moduleref.Add(ar.FullName); } } } //mapModule[module.Name] = module; if (module.HasTypes) { foreach (var t in module.Types) { if (t.FullName.Contains(".My."))//vb 系统类不要 { continue; } mapType[t.FullName] = new ILType(this, t); if (t.HasNestedTypes) { foreach (var nt in t.NestedTypes) { mapType[nt.FullName] = new ILType(this, nt); } } } } }
public void LoadModule(System.IO.Stream dllStream, System.IO.Stream pdbStream) { this.module = Mono.Cecil.ModuleDefinition.ReadModule(dllStream); if (pdbStream != null) { var debugInfoLoader = new Mono.Cecil.Pdb.PdbReaderProvider(); module.ReadSymbols(debugInfoLoader.GetSymbolReader(module, pdbStream)); } if (module.HasAssemblyReferences) { foreach (var ar in module.AssemblyReferences) { if (moduleref.Contains(ar.Name) == false) { moduleref.Add(ar.Name); } if (moduleref.Contains(ar.FullName) == false) { moduleref.Add(ar.FullName); } } } //mapModule[module.Name] = module; if (module.HasTypes) { foreach (var t in module.Types) { if (t.FullName.Contains(".My."))//vb skip the system class { continue; } mapType[t.FullName] = new ILType(this, t, logger); if (t.HasNestedTypes) { foreach (var nt in t.NestedTypes) { mapType[nt.FullName] = new ILType(this, nt, logger); } } } } }