Ejemplo n.º 1
0
        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;
 }
 public DebugInfoProvider(TempPdbReader pdbReader)
 {
     PdbReader = pdbReader;
 }