public void AttachmentJson() { var att = new LogEntryAttachment { Id = "someid", Name = "somename", ContentType = "sometype", ContentEncoding = "someencoding", Headers = new [] { new KeyValuePair <string, object>("somekey", "somevalue") }, Data = System.Text.Encoding.UTF8.GetBytes("somedata") }; var mem = new MemoryStream(); using (var writer = new StreamWriter(mem)) { LogEntryJson.WriteJson(writer, att); } Assert.Equal(string.Join("", new [] { "{", "\"id\":\"someid\",", "\"name\":\"somename\",", "\"contentType\":\"sometype\",", "\"contentEncoding\":\"someencoding\",", "\"headers\":[{\"somekey\":\"somevalue\"}],", "\"data\":\"c29tZWRhdGE=\"", "}", }), System.Text.Encoding.UTF8.GetString(mem.ToArray()) ); }
public static TextWriter WriteJson(TextWriter writer, LogEntryAttachment attachment) { return(writer .WriteJsonStartObject() .WriteJsonProperty("id", attachment.Id).WriteJsonComma() .WriteJsonProperty("name", attachment.Name).WriteJsonComma() .WriteJsonProperty("contentType", attachment.ContentType).WriteJsonComma() .WriteJsonProperty("contentEncoding", attachment.ContentEncoding).WriteJsonComma() .WriteJsonProperty("headers", attachment.Headers, WriteJson).WriteJsonComma() .WriteJsonProperty("data", attachment.Data) .WriteJsonEndObject()); }