Пример #1
0
        private static void PdbToXML(string asmPath, string outputXml, SymbolFormat symFormat, bool expandAttrs)
        {
            Console.WriteLine("Reading the {0} symbol file for assembly: {1}", symFormat, asmPath);
            Console.WriteLine("Writing XML file: {0}", outputXml);

            try
            {
                // Read the PDB into a SymbolData object
                SymbolDataReader reader  = new SymbolDataReader(asmPath, symFormat, expandAttrs);
                SymbolData       symData = reader.ReadSymbols();

                if (symData != null)
                {
                    // Use XML serialization to write out the symbol data
                    XmlWriterSettings settings = new XmlWriterSettings();
                    settings.ConformanceLevel = ConformanceLevel.Document;
                    settings.Indent           = true;
                    XmlSerializer ser = new XmlSerializer(typeof(SymbolData));
                    using (XmlWriter writer = XmlWriter.Create(outputXml, settings))
                    {
                        ser.Serialize(writer, symData);
                    }
                }
            }
            catch (ReflectionTypeLoadException ex)
            {
                foreach (var e in ex.LoaderExceptions)
                {
                    Console.WriteLine(e.Message);
                }
                throw;
            }
        }
Пример #2
0
        private static void PdbToXML(string asmPath, string outputXml, SymbolFormat symFormat, bool expandAttrs)
        {
            Console.WriteLine("Reading the {0} symbol file for assembly: {1}", symFormat, asmPath);
            Console.WriteLine("Writing XML file: {0}", outputXml);

            try
            {
                // Read the PDB into a SymbolData object
                SymbolDataReader reader = new SymbolDataReader(asmPath, symFormat, expandAttrs);
                SymbolData symData = reader.ReadSymbols();

                if (symData != null)
                {
                    // Use XML serialization to write out the symbol data
                    XmlWriterSettings settings = new XmlWriterSettings();
                    settings.ConformanceLevel = ConformanceLevel.Document;
                    settings.Indent = true;
                    XmlSerializer ser = new XmlSerializer(typeof(SymbolData));
                    using (XmlWriter writer = XmlWriter.Create(outputXml, settings))
                    {
                        ser.Serialize(writer, symData);
                    }
                }
            }
            catch (ReflectionTypeLoadException ex)
            {
                foreach(var e in ex.LoaderExceptions)
                {
                    Console.WriteLine(e.Message);
                }
                throw;
            }
        }