public static Checksum CreateChecksum(MetadataReference reference, CancellationToken cancellationToken) { if (reference is PortableExecutableReference portable) { return(CreatePortableExecutableReferenceChecksum(portable, cancellationToken)); } throw ExceptionUtilities.UnexpectedValue(reference.GetType()); }
public Checksum CreateChecksum(MetadataReference reference, CancellationToken cancellationToken) { var portable = reference as PortableExecutableReference; if (portable != null) { return CreatePortableExecutableReferenceChecksum(portable, cancellationToken); } throw ExceptionUtilities.UnexpectedValue(reference.GetType()); }
public virtual void WriteMetadataReferenceTo(MetadataReference reference, ObjectWriter writer, CancellationToken cancellationToken) { if (reference is PortableExecutableReference portable) { if (portable is ISupportTemporaryStorage supportTemporaryStorage) { if (TryWritePortableExecutableReferenceBackedByTemporaryStorageTo(supportTemporaryStorage, writer, cancellationToken)) { return; } } WritePortableExecutableReferenceTo(portable, writer, cancellationToken); return; } throw ExceptionUtilities.UnexpectedValue(reference.GetType()); }
public void WriteTo(MetadataReference reference, ObjectWriter writer, CancellationToken cancellationToken) { var portable = reference as PortableExecutableReference; if (portable != null) { var supportTemporaryStorage = portable as ISupportTemporaryStorage; if (supportTemporaryStorage != null) { if (TryWritePortableExecutableReferenceBackedByTemporaryStorageTo(supportTemporaryStorage, writer, cancellationToken)) { return; } } WritePortableExecutableReferenceTo(portable, writer, cancellationToken); return; } throw ExceptionUtilities.UnexpectedValue(reference.GetType()); }
private Metadata GetMetadata(MetadataReference mref) { var fnGetMetadata = mref.GetType().GetMethod("GetMetadata", BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance | BindingFlags.FlattenHierarchy); return fnGetMetadata?.Invoke(mref, null) as Metadata; }
private static DocumentationProvider GetDocumentationProvider(MetadataReference reference) { return((DocumentationProvider)reference.GetType().GetProperty("DocumentationProvider", System.Reflection.BindingFlags.NonPublic | System.Reflection.BindingFlags.Instance).GetValue(reference)); }