예제 #1
0
        internal static CSharpCompilation ToCompilation(
            this ImmutableArray <MetadataBlock> metadataBlocks,
            Guid moduleVersionId,
            MakeAssemblyReferencesKind kind
            )
        {
            var references = metadataBlocks.MakeAssemblyReferences(
                moduleVersionId,
                IdentityComparer,
                kind,
                out var referencesBySimpleName
                );
            var options = s_compilationOptions;

            if (referencesBySimpleName != null)
            {
                Debug.Assert(kind == MakeAssemblyReferencesKind.AllReferences);
                var resolver = new EEMetadataReferenceResolver(
                    IdentityComparer,
                    referencesBySimpleName
                    );
                options = options.WithMetadataReferenceResolver(resolver);
            }
            return(CSharpCompilation.Create(
                       assemblyName: ExpressionCompilerUtilities.GenerateUniqueName(),
                       references: references,
                       options: options
                       ));
        }
 internal static void VerifyResolutionRequests(EEMetadataReferenceResolver resolver, (AssemblyIdentity, AssemblyIdentity, int)[] expectedRequests)