CLASS NAME: JsonContent
public class JsonContent : HttpContent { private readonly JToken _value; public JsonContent(JToken value) { _value = value; Headers.ContentType = new MediaTypeHeaderValue("application/json"); } protected override Task SerializeToStreamAsync(Stream stream, TransportContext context) { var jw = new JsonTextWriter(new StreamWriter(stream)) { Formatting = Formatting.Indented }; _value.WriteTo(jw); jw.Flush(); return Task.FromResult<object>(null); } protected override bool TryComputeLength(out long length) { length = -1; return false; } } |
CLASS NAME: JsonResponse
public class JsonResponse : HttpResponseMessage { public JsonResponse(object fromObject) { Content = new JsonContent(JObject.FromObject(fromObject)); } } |