Esempio n. 1
0
        protected IEnumerable <MetadataReference> ResolveReferences(MetadataReferenceResolver metadataReferenceResolver)
        {
            List <MetadataReference> references = new List <MetadataReference>
            {
                MetadataReference.CreateFromFile(typeof(object).GetTypeInfo().Assembly.Location)
            };

            foreach (MetadataReference reference in MetadataReferences)
            {
                UnresolvedMetadataReference unresolved = reference as UnresolvedMetadataReference;

                if (unresolved != null)
                {
                    ImmutableArray <PortableExecutableReference> resolved =
                        metadataReferenceResolver.ResolveReference(unresolved.Reference, null, unresolved.Properties);

                    references.AddRange(resolved);
                }
                else
                {
                    references.Add(reference);
                }
            }

            return(references);
        }
 private static string?GetFilePath(MetadataReference metadataReference)
 {
     return(metadataReference switch
     {
         PortableExecutableReference portableExecutableReference => portableExecutableReference.FilePath,
         UnresolvedMetadataReference unresolvedMetadataReference => unresolvedMetadataReference.Reference,
         _ => null,
     });