Esempio n. 1
0
        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);
        }