示例#1
0
        public ICollection <TypeSymbol> ImportMetadata(string applicationAssemblyName, ICollection <string> references, SymbolSet symbols, string intermediaryAssembly)
        {
            Debug.Assert(references != null);
            Debug.Assert(symbols != null);
            Debug.Assert(intermediaryAssembly != null);

            this.symbols = symbols;

            MetadataSource mdSource = new MetadataSource();

            if (!string.IsNullOrEmpty(intermediaryAssembly))
            {
                references = new List <string>(references);
                references.Add(intermediaryAssembly);
            }

            bool hasLoadErrors = mdSource.LoadReferences(references, errorHandler);

            ICollection <TypeSymbol> importedTypes = null;

            if (!hasLoadErrors)
            {
                importedTypes = ImportAssemblies(applicationAssemblyName, mdSource, Path.GetFullPath(intermediaryAssembly));
            }

            return(resolveError
                ? null
                : importedTypes);
        }
示例#2
0
        public ICollection <TypeSymbol> ImportMetadata(string assemblyName, ICollection <string> references, SymbolSet symbols)
        {
            Debug.Assert(references != null);
            Debug.Assert(symbols != null);

            this.symbols = symbols;

            MetadataSource mdSource      = new MetadataSource();
            bool           hasLoadErrors = mdSource.LoadReferences(references, errorHandler);

            ICollection <TypeSymbol> importedTypes = null;

            if (!hasLoadErrors)
            {
                importedTypes = ImportAssemblies(assemblyName, mdSource);
            }

            return(resolveError
                ? null
                : importedTypes);
        }