using System; using System.IO; namespace Google.ProtocolBuffers.ProtoDump { /// /// Small utility to load a binary message and dump it in text form /// class Program { static int Main(string[] args) { if (args.Length != 2) { Console.Error.WriteLine("Usage: ProtoDump "); Console.Error.WriteLine("The descriptor type name is the fully-qualified message name,"); Console.Error.WriteLine("including assembly e.g. ProjectNamespace.Message,Company.Project"); return 1; } IMessage defaultMessage; try { defaultMessage = MessageUtil.GetDefaultMessage(args[0]); } catch (ArgumentException e) { Console.Error.WriteLine(e.Message); return 1; } try { IBuilder builder = defaultMessage.WeakCreateBuilderForType(); if (builder == null) { Console.Error.WriteLine("Unable to create builder"); return 1; } byte[] inputData = File.ReadAllBytes(args[1]); builder.WeakMergeFrom(ByteString.CopyFrom(inputData)); Console.WriteLine(TextFormat.PrintToString(builder.WeakBuild())); return 0; } catch (Exception e) { Console.Error.WriteLine("Error: {0}", e.Message); Console.Error.WriteLine(); Console.Error.WriteLine("Detailed exception information: {0}", e); return 1; } } } }