5 instantiations of MetadataReaderProvider
System.Reflection.Metadata (5)
System\Reflection\Metadata\MetadataReaderProvider.cs (4)
83return new MetadataReaderProvider(new ExternalMemoryBlockProvider(start, size)); 111return new MetadataReaderProvider(new ByteArrayMemoryProvider(image)); 189result = new MetadataReaderProvider(new StreamMemoryBlockProvider(stream, start, actualSize, (options & MetadataStreamOptions.LeaveOpen) != 0)); 195result = new MetadataReaderProvider(StreamMemoryBlockProvider.ReadMemoryBlockNoLock(stream, start, actualSize));
System\Reflection\PortableExecutable\PEReader.EmbeddedPortablePdb.cs (1)
44return new MetadataReaderProvider(DecodeEmbeddedPortablePdbDebugDirectoryData(block));
86 references to MetadataReaderProvider
dotnet-sourcelink (3)
ILCompiler.TypeSystem (1)
src\runtime\src\coreclr\tools\Common\TypeSystem\Ecma\SymbolReader\PortablePdbSymbolReader.cs (1)
89MetadataReaderProvider embeddedReaderProvider = peReader.ReadEmbeddedPortablePdbDebugDirectoryData(debugEntry);
Microsoft.CodeAnalysis.Features (16)
Debugging\DebugInformationReaderProvider.cs (4)
39private sealed class Portable(MetadataReaderProvider pdbReaderProvider) : DebugInformationReaderProvider 41private readonly MetadataReaderProvider _pdbReaderProvider = pdbReaderProvider; 138return new Portable(MetadataReaderProvider.FromPortablePdbStream(stream)); 161public static DebugInformationReaderProvider CreateFromMetadataReader(MetadataReaderProvider metadataProvider)
EditAndContinue\DebuggingSession.cs (2)
328if (!TryCreateInitialBaseline(baselineCompilation, outputs, baselineProject.Id, diagnostics, out var initialBaseline, out var debugInfoReaderProvider, out var metadataReaderProvider)) 377[NotNullWhen(true)] out MetadataReaderProvider? metadataReaderProvider)
Emit\CompilationOutputs.cs (5)
36/// otherwise keeps the underlying stream open until the returned <see cref="MetadataReaderProvider"/> is disposed. 39/// Instance of <see cref="MetadataReaderProvider"/>, which owns the opened metadata and must be disposed once the caller is done reading the data, 45public virtual MetadataReaderProvider? OpenAssemblyMetadata(bool prefetch) 60return MetadataReaderProvider.FromMetadataStream( 72using var metadataProvider = OpenAssemblyMetadata(prefetch: false);
PdbSourceDocument\DocumentDebugInfoReader.cs (2)
21private readonly MetadataReaderProvider _pdbReaderProvider; 27public DocumentDebugInfoReader(PEReader peReader, MetadataReaderProvider pdbReaderProvider)
PdbSourceDocument\PdbFileLocatorService.cs (3)
40if (peReader.TryOpenAssociatedPortablePdb(dllPath, ReadFileIfExists, out var pdbReaderProvider, out var pdbFilePath)) 80var readerProvider = MetadataReaderProvider.FromPortablePdbStream(pdbStream);
Microsoft.CodeAnalysis.Rebuild (1)
Extensions.cs (1)
32var provider = peReader.ReadEmbeddedPortablePdbDebugDirectoryData(entry);
Microsoft.Diagnostics.DataContractReader.Contracts (7)
Contracts\EcmaMetadata_1.cs (7)
16private readonly Dictionary<ModuleHandle, MetadataReaderProvider?> _metadata = []; 52if (_metadata.TryGetValue(handle, out MetadataReaderProvider? result)) 58MetadataReaderProvider? provider = GetMetadataProvider(handle); 64private MetadataReaderProvider? GetMetadataProvider(ModuleHandle handle) 77return MetadataReaderProvider.FromMetadataImage(ImmutableCollectionsMarshal.AsImmutableArray(data)); 84return MetadataReaderProvider.FromMetadataImage(ImmutableCollectionsMarshal.AsImmutableArray(data)); 207return MetadataReaderProvider.FromMetadataStream(metadataStream);
Microsoft.VisualStudio.TestPlatform.ObjectModel (4)
Navigation\PortablePdbReader.cs (3)
27private readonly MetadataReaderProvider _provider; 51_provider = MetadataReaderProvider.FromPortablePdbStream(stream); 60public PortablePdbReader(MetadataReaderProvider metadataReaderProvider)
Navigation\PortableSymbolReader.cs (1)
152var hasPdb = peReader.TryOpenAssociatedPortablePdb(binaryPath, pdbPath => new FileStream(pdbPath, FileMode.Open, FileAccess.Read), out var mp, pdbPath: out _);
System.Diagnostics.StackTrace (9)
System\Diagnostics\StackTraceSymbols.cs (9)
15private readonly ConditionalWeakTable<Assembly, MetadataReaderProvider?> _metadataCache; 22_metadataCache = new ConditionalWeakTable<Assembly, MetadataReaderProvider?>(); 30foreach ((Assembly _, MetadataReaderProvider? provider) in _metadataCache) 124MetadataReaderProvider? provider; 143private static unsafe MetadataReaderProvider? TryOpenReaderForInMemoryPdb(IntPtr inMemoryPdbAddress, int inMemoryPdbSize) 155var provider = MetadataReaderProvider.FromMetadataImage((byte*)inMemoryPdbAddress, inMemoryPdbSize); 185private static MetadataReaderProvider? TryOpenReaderFromAssemblyFile(string assemblyPath, IntPtr loadedPeAddress, int loadedPeSize, bool isFileLayout) 197MetadataReaderProvider? provider;
System.Reflection.Metadata (45)
System\Reflection\Metadata\MetadataReaderProvider.cs (31)
53/// The memory is owned by the caller and not released on disposal of the <see cref="MetadataReaderProvider"/>. 54/// The caller is responsible for keeping the memory alive and unmodified throughout the lifetime of the <see cref="MetadataReaderProvider"/>. 55/// The content of the blob is not read during the construction of the <see cref="MetadataReaderProvider"/> 57public static unsafe MetadataReaderProvider FromPortablePdbImage(byte* start, int size) => FromMetadataImage(start, size); 67/// The memory is owned by the caller and not released on disposal of the <see cref="MetadataReaderProvider"/>. 68/// The caller is responsible for keeping the memory alive and unmodified throughout the lifetime of the <see cref="MetadataReaderProvider"/>. 69/// The content of the blob is not read during the construction of the <see cref="MetadataReaderProvider"/> 71public static unsafe MetadataReaderProvider FromMetadataImage(byte* start, int size) 91/// The content of the image is not read during the construction of the <see cref="MetadataReaderProvider"/> 94public static MetadataReaderProvider FromPortablePdbImage(ImmutableArray<byte> image) => FromMetadataImage(image); 101/// The content of the image is not read during the construction of the <see cref="MetadataReaderProvider"/> 104public static MetadataReaderProvider FromMetadataImage(ImmutableArray<byte> image) 122/// Unless <see cref="MetadataStreamOptions.LeaveOpen"/> is specified, ownership of the stream is transferred to the <see cref="MetadataReaderProvider"/> 123/// upon successful argument validation. It will be disposed by the <see cref="MetadataReaderProvider"/> and the caller must not manipulate it. 126/// is read from the stream during the construction of the <see cref="MetadataReaderProvider"/>. Furthermore, the stream must not be manipulated 127/// by caller while the <see cref="MetadataReaderProvider"/> is alive and undisposed. 129/// If <see cref="MetadataStreamOptions.PrefetchMetadata"/>, the <see cref="MetadataReaderProvider"/> 131/// specified, the caller retains full ownership of the stream and is assured that it will not be manipulated by the <see cref="MetadataReaderProvider"/> 137public static MetadataReaderProvider FromPortablePdbStream(Stream stream, MetadataStreamOptions options = MetadataStreamOptions.Default, int size = 0) => FromMetadataStream(stream, options, size); 147/// Unless <see cref="MetadataStreamOptions.LeaveOpen"/> is specified, ownership of the stream is transferred to the <see cref="MetadataReaderProvider"/> 148/// upon successful argument validation. It will be disposed by the <see cref="MetadataReaderProvider"/> and the caller must not manipulate it. 151/// is read from the stream during the construction of the <see cref="MetadataReaderProvider"/>. Furthermore, the stream must not be manipulated 152/// by caller while the <see cref="MetadataReaderProvider"/> is alive and undisposed. 154/// If <see cref="MetadataStreamOptions.PrefetchMetadata"/>, the <see cref="MetadataReaderProvider"/> 156/// specified, the caller retains full ownership of the stream and is assured that it will not be manipulated by the <see cref="MetadataReaderProvider"/> 163public static MetadataReaderProvider FromMetadataStream(Stream stream, MetadataStreamOptions options = MetadataStreamOptions.Default, int size = 0) 183MetadataReaderProvider result; 216/// It is not safe to call <see cref="Dispose"/> in parallel with any other operation on the <see cref="MetadataReaderProvider"/> 231/// Gets a <see cref="MetadataReader"/> from a <see cref="MetadataReaderProvider"/>. 234/// The caller must keep the <see cref="MetadataReaderProvider"/> undisposed throughout the lifetime of the metadata reader. 285throw new ObjectDisposedException(nameof(MetadataReaderProvider));
System\Reflection\Metadata\MetadataStreamOptions.cs (4)
10/// By default the stream is disposed when <see cref="MetadataReaderProvider"/> is disposed and sections of the PE image are read lazily. 15/// Keep the stream open when the <see cref="MetadataReaderProvider"/> is disposed. 23/// The underlying file may be closed and even deleted after <see cref="MetadataReaderProvider"/> is constructed. 24/// <see cref="MetadataReaderProvider"/> closes the stream automatically by the time the constructor returns unless <see cref="LeaveOpen"/> is specified.
System\Reflection\PortableExecutable\PEReader.cs (7)
688/// If successful, a new instance of <see cref="MetadataReaderProvider"/> to be used to read the Portable PDB,. 710public bool TryOpenAssociatedPortablePdb(string peImagePath, Func<string, Stream?> pdbFileStreamProvider, out MetadataReaderProvider? pdbReaderProvider, out string? pdbPath) 768private bool TryOpenCodeViewPortablePdb(DebugDirectoryEntry codeViewEntry, string peImageDirectory, Func<string, Stream?> pdbFileStreamProvider, out MetadataReaderProvider? provider, out string? pdbPath, ref Exception? errorToReport) 803private static bool TryOpenPortablePdbFile(string path, BlobContentId id, Func<string, Stream?> pdbFileStreamProvider, out MetadataReaderProvider? provider, ref Exception? errorToReport) 806MetadataReaderProvider? candidate = null; 832candidate = MetadataReaderProvider.FromPortablePdbStream(pdbStream); 857partial void TryOpenEmbeddedPortablePdb(DebugDirectoryEntry embeddedPdbEntry, ref bool openedEmbeddedPdb, ref MetadataReaderProvider? provider, ref Exception? errorToReport);
System\Reflection\PortableExecutable\PEReader.EmbeddedPortablePdb.cs (3)
34public MetadataReaderProvider ReadEmbeddedPortablePdbDebugDirectoryData(DebugDirectoryEntry entry) 136partial void TryOpenEmbeddedPortablePdb(DebugDirectoryEntry embeddedPdbEntry, ref bool openedEmbeddedPdb, ref MetadataReaderProvider? provider, ref Exception? errorToReport) 139MetadataReaderProvider? candidate = null;