private static ReadOnlyArray<Module> CreateAssemblyModules(PEFileReader peFileReader, string assemblyResolvedPath, MetadataFileProvider fileProvider)
        {
            List<Module> modules = new List<Module>();
            modules.Add(new Module(peFileReader));

            foreach (string moduleFileName in peFileReader.GetMetadataModuleNames())
            {
                string modulePath;
                try
                {
                    modulePath = fileProvider.ProvideModuleFile(assemblyResolvedPath, moduleFileName);
                }
                catch (Exception e)
                {
                    throw new FileNotFoundException(e.Message, moduleFileName);
                }

                if (modulePath == null)
                {
                    throw new FileNotFoundException("Module not found", moduleFileName);
                }

                modules.Add(CreateModuleFromFile(modulePath));
            }

            return modules.AsReadOnly<Module>();
        }
Exemplo n.º 2
0
        private static ReadOnlyArray <Module> CreateAssemblyModules(PEFileReader peFileReader, string assemblyResolvedPath, MetadataFileProvider fileProvider)
        {
            List <Module> modules = new List <Module>();

            modules.Add(new Module(peFileReader));

            foreach (string moduleFileName in peFileReader.GetMetadataModuleNames())
            {
                string modulePath;
                try
                {
                    modulePath = fileProvider.ProvideModuleFile(assemblyResolvedPath, moduleFileName);
                }
                catch (Exception e)
                {
                    throw new FileNotFoundException(e.Message, moduleFileName);
                }

                if (modulePath == null)
                {
                    throw new FileNotFoundException("Module not found", moduleFileName);
                }

                modules.Add(CreateModuleFromFile(modulePath));
            }

            return(modules.AsReadOnly <Module>());
        }