private static ImmutableArray <ImmutableArray <string> > GetGroupedImportStrings(Compilation compilation, string methodName, out ImmutableArray <string> externAliasStrings) { Assert.NotNull(compilation); Assert.NotNull(methodName); using (var exebits = new MemoryStream()) { using (var pdbbits = new MemoryStream()) { compilation.Emit(exebits, pdbbits); exebits.Position = 0; using (var module = new PEModule(new PEReader(exebits, PEStreamOptions.LeaveOpen), metadataOpt: IntPtr.Zero, metadataSizeOpt: 0)) { var metadataReader = module.MetadataReader; MethodDefinitionHandle methodHandle = metadataReader.MethodDefinitions.Single(mh => metadataReader.GetString(metadataReader.GetMethodDefinition(mh).Name) == methodName); int methodToken = metadataReader.GetToken(methodHandle); pdbbits.Position = 0; ISymUnmanagedReader reader = (ISymUnmanagedReader)TempPdbReader.CreateUnmanagedReader(pdbbits); return(reader.GetCSharpGroupedImportStrings(methodToken, methodVersion: 1, externAliasStrings: out externAliasStrings)); } } } }
public DebugInfoProvider CreatePdbInfoProvider() { return(new DebugInfoProvider(TempPdbReader.Create(new MemoryStream(EmittedAssemblyPdb.ToArray())))); }
public DebugInfoProvider(TempPdbReader pdbReader) { PdbReader = pdbReader; }