private void AssertWrittenJson <TValue>(TValue value, GrpcJsonSettings?settings = null, bool?compareRawStrings = null) where TValue : IMessage { var typeRegistery = TypeRegistry.FromFiles( HelloRequest.Descriptor.File, Timestamp.Descriptor.File); settings ??= new GrpcJsonSettings { WriteInt64sAsStrings = true }; var formatterSettings = new JsonFormatter.Settings( formatDefaultValues: !settings.IgnoreDefaultValues, typeRegistery); formatterSettings = formatterSettings.WithFormatEnumsAsIntegers(settings.WriteEnumsAsIntegers); var formatter = new JsonFormatter(formatterSettings); var jsonOld = formatter.Format(value); _output.WriteLine("Old:"); _output.WriteLine(jsonOld); var jsonSerializerOptions = CreateSerializerOptions(settings, typeRegistery); var jsonNew = JsonSerializer.Serialize(value, jsonSerializerOptions); _output.WriteLine("New:"); _output.WriteLine(jsonNew); using var doc1 = JsonDocument.Parse(jsonNew); using var doc2 = JsonDocument.Parse(jsonOld); var comparer = new JsonElementComparer(maxHashDepth: -1, compareRawStrings: compareRawStrings ?? false); Assert.True(comparer.Equals(doc1.RootElement, doc2.RootElement)); }
/// <summary> /// Converts the <see cref="message"/> to a string with newlines separating each declaration for easy analysis. /// </summary> /// <param name="message">Decoded proto message data</param> /// <returns>Single line string ready for writing to a file</returns> public static string DumpAll(this IMessage message) { var s = new JsonFormatter.Settings(true); var f = new JsonFormatter(s); var result = f.Format(message); return(Prettify(result)); }
public override async Task WriteResponseBodyAsync(OutputFormatterWriteContext context, Encoding selectedEncoding) { HttpResponse response = context.HttpContext.Response; IMessage protoObj = (IMessage)context.Object; JsonFormatter.Settings formatterSettings = new JsonFormatter.Settings(true); JsonFormatter jsonFormatter = new JsonFormatter(formatterSettings); await response.WriteAsync(jsonFormatter.Format(protoObj)); }
/// <summary> /// Converts each message in <see cref="messages"/> to a string. /// </summary> /// <typeparam name="T">Type of message</typeparam> /// <param name="messages">Decoded proto message data table</param> /// <returns>Single line string ready for writing to a file</returns> public static IEnumerable <string> DumpAllLines(this IEnumerable <IMessage> messages) { var s = new JsonFormatter.Settings(true); var f = new JsonFormatter(s); yield return("{ \"entries\": ["); foreach (var m in messages) { yield return(f.Format(m) + ","); } yield return("]}"); }
private void LogMessage(IMessage message) { if (LogStream != null) { using (var writer = new StreamWriter(LogStream, Encoding.UTF8, 0x1000, true)) { writer.Write(" DBG >>> "); var settings = new JsonFormatter.Settings(true); var formatter = new JsonFormatter(settings); formatter.Format(message, writer); writer.Write("\r\n"); } } }
/// <summary> /// Converts each message in <see cref="messages"/> to a string. /// </summary> /// <typeparam name="T">Type of message</typeparam> /// <param name="messages">Decoded proto message data table</param> /// <returns>Single line string ready for writing to a file</returns> public static IEnumerable <string> DumpAllLines(this IEnumerable <IMessage> messages) { var s = new JsonFormatter.Settings(true); var f = new JsonFormatter(s); var size = messages.Count(); yield return("{\"entries\": ["); for (int i = 0; i < size; i++) { yield return(f.Format(messages.ElementAt(i)) + (i == size - 1 ? "" : ",")); } yield return("]}"); }
static void Main(string[] args) { Console.WriteLine("Hello world"); var tr = new TestReflection(); tr.DoCheck(); return; TestEnum(); return; var m = new SearchRequest(); m.Query = "Select * from toto"; m.PageNumber = 0; m.ResultPerPage = 5; m.Data = ByteString.CopyFrom("Hello world xxxxxxxxxxxxxxxxxxxxxxxxxxxxxx", Encoding.ASCII); m.Contents.Add(new subfield() { Id = 1, Content = ByteString.CopyFrom("zzzzzzzzzzzzzzzzzzzz", Encoding.ASCII) }); m.Contents.Add(new subfield() { Id = 17, Content = ByteString.CopyFrom("zzzdgdfdferg", Encoding.ASCII) }); Console.WriteLine("m={0}", m); var m2 = SearchRequest.Parser.ParseFrom(m.ToByteArray()); Console.WriteLine("m2={0}", m2); foreach (var item in m2.Contents) { item.Content = ByteString.CopyFrom("aaaaaa", Encoding.ASCII); } Console.WriteLine("m2_bis={0}", m2); Console.WriteLine("m_bis={0}", m); // Reflection m2 + modif //PrintMessage(m2); PrintSmart(m); Console.WriteLine("m_ter={0}", m); var js = new JsonFormatter.Settings(true); var jf = new JsonFormatter(js); Console.WriteLine("m4={0}", jf.Format(m)); var t = new Google.Protobuf.WellKnownTypes.Any(); Console.WriteLine(Properties.Settings.Default.Tester); Properties.Settings.Default.Tester = "lionel"; Properties.Settings.Default.Save(); Console.WriteLine(Properties.Resources.MyString); Console.WriteLine(Properties.Resources.TextFile1); }