/// <summary> /// Load the PDB given the parameters at the ctor and spew it out to the XmlWriter specified /// at the ctor. /// </summary> private static void ToXml(TextWriter xmlWriter, Stream pdbStream, MetadataReader metadataReaderOpt, PdbToXmlOptions options, IEnumerable <MethodDefinitionHandle> methodHandles) { Debug.Assert(pdbStream != null); Debug.Assert((options & PdbToXmlOptions.ResolveTokens) == 0 || metadataReaderOpt != null); XmlDocument doc = new XmlDocument(); XmlWriter writer = doc.CreateNavigator().AppendChild(); using (TempPdbReader pdbReader = TempPdbReader.Create(pdbStream)) { if (pdbReader == null) { Console.WriteLine("Error: No Symbol Reader could be initialized."); return; } var converter = new PdbToXmlConverter(writer, pdbReader, metadataReaderOpt, options); converter.WriteRoot(methodHandles ?? metadataReaderOpt.MethodDefinitions); } writer.Close(); // Save xml to disk doc.Save(xmlWriter); }
private PdbToXmlConverter(XmlWriter writer, TempPdbReader pdbReader, MetadataReader metadataReader, PdbToXmlOptions options) { this.pdbReader = pdbReader; this.metadataReader = metadataReader; this.writer = writer; this.options = options; }