/// <summary> /// See interface docs. /// </summary> /// <param name="response"></param> /// <param name="json"></param> /// <param name="jsonpCallbackFunction"></param> public void SendJson(IResponse response, object json, string jsonpCallbackFunction) { if (response == null) { throw new ArgumentNullException("response"); } if (json == null) { throw new ArgumentNullException("json"); } response.AddHeader("Cache-Control", "max-age=0, no-cache, no-store, must-revalidate"); var type = json.GetType(); JsonSerialiser serialiser; lock (_SyncLock) { if (!_JsonSerialiserMap.TryGetValue(type, out serialiser)) { serialiser = new JsonSerialiser(); serialiser.Initialise(type); _JsonSerialiserMap.Add(type, serialiser); } } string text; using (MemoryStream stream = new MemoryStream()) { serialiser.WriteObject(stream, json); text = Encoding.UTF8.GetString(stream.ToArray()); } if (!String.IsNullOrEmpty(jsonpCallbackFunction)) { text = String.Format("{0}({1})", jsonpCallbackFunction, text); } SendText(response, text, Encoding.UTF8, MimeType.Json); }
public void JsonSerialiser_Initialise_Throws_If_Passed_Null() { _JsonSerialiser.Initialise(null); }