public static ModuleDefinition CreateModule(Image image, ReaderParameters parameters) { ModuleReader moduleReader = CreateModuleReader(image, parameters.ReadingMode); ModuleDefinition moduleDefinition = moduleReader.module; if (parameters.assembly_resolver != null) { moduleDefinition.assembly_resolver = Disposable.NotOwned(parameters.assembly_resolver); } if (parameters.metadata_resolver != null) { moduleDefinition.metadata_resolver = parameters.metadata_resolver; } if (parameters.metadata_importer_provider != null) { moduleDefinition.metadata_importer = parameters.metadata_importer_provider.GetMetadataImporter(moduleDefinition); } if (parameters.reflection_importer_provider != null) { moduleDefinition.reflection_importer = parameters.reflection_importer_provider.GetReflectionImporter(moduleDefinition); } GetMetadataKind(moduleDefinition, parameters); moduleReader.ReadModule(); ReadSymbols(moduleDefinition, parameters); moduleReader.ReadSymbols(moduleDefinition); if (parameters.ReadingMode == ReadingMode.Immediate) { moduleDefinition.MetadataSystem.Clear(); } return(moduleDefinition); }
public static ModuleDefinition CreateModuleFrom(Image image, ReaderParameters parameters) { ModuleReader moduleReader = ModuleReader.CreateModuleReader(image, parameters.ReadingMode); ModuleDefinition assemblyResolver = moduleReader.module; if (parameters.AssemblyResolver != null) { assemblyResolver.assembly_resolver = parameters.AssemblyResolver; } if (parameters.MetadataResolver != null) { assemblyResolver.metadata_resolver = parameters.MetadataResolver; } moduleReader.ReadModule(); ModuleReader.ReadSymbols(assemblyResolver, parameters); return(assemblyResolver); }