public static void SerializeToStream <T>(T value, Stream stream) { if (value == null) { return; } if (typeof(T) == typeof(object)) { if (typeof(T).IsAbstract() || typeof(T).IsInterface()) { JsState.IsWritingDynamic = true; } SerializeToStream(value, value.GetType(), stream); if (typeof(T).IsAbstract() || typeof(T).IsInterface()) { JsState.IsWritingDynamic = false; } return; } var writer = new StreamWriter(stream, UTF8EncodingWithoutBom); try { SerializationVisitorTracker.TrackSerialization(writer); JsvWriter <T> .WriteObject(writer, value); } finally { SerializationVisitorTracker.UnTrackSerialization(writer); } writer.Flush(); }
public static void SerializeToWriter <T>(T value, TextWriter writer) { if (value == null) { return; } if (typeof(T) == typeof(string)) { writer.Write(value); return; } if (typeof(T) == typeof(object)) { if (typeof(T).IsAbstract() || typeof(T).IsInterface()) { JsState.IsWritingDynamic = true; } SerializeToWriter(value, value.GetType(), writer); if (typeof(T).IsAbstract() || typeof(T).IsInterface()) { JsState.IsWritingDynamic = false; } return; } try { SerializationVisitorTracker.TrackSerialization(writer); JsvWriter <T> .WriteObject(writer, value); } finally { SerializationVisitorTracker.UnTrackSerialization(writer); } }
public static string SerializeToString(object value, Type type) { if (value == null) { return(null); } if (type == typeof(string)) { return(value as string); } var sb = new StringBuilder(); using (var writer = new StringWriter(sb, CultureInfo.InvariantCulture)) { try { SerializationVisitorTracker.TrackSerialization(writer); JsvWriter.GetWriteFn(type)(writer, value); } finally { SerializationVisitorTracker.UnTrackSerialization(writer); } } return(sb.ToString()); }
public static void SerializeToStream(object value, Type type, Stream stream) { var writer = new StreamWriter(stream, UTF8EncodingWithoutBom); try { SerializationVisitorTracker.TrackSerialization(writer); JsvWriter.GetWriteFn(type)(writer, value); } finally { SerializationVisitorTracker.UnTrackSerialization(writer); } writer.Flush(); }
public static string SerializeToString <T>(T value) { if (value == null) { return(null); } if (typeof(T) == typeof(string)) { return(value as string); } if (typeof(T) == typeof(object) || typeof(T).IsAbstract() || typeof(T).IsInterface()) { if (typeof(T).IsAbstract() || typeof(T).IsInterface()) { JsState.IsWritingDynamic = true; } var result = SerializeToString(value, value.GetType()); if (typeof(T).IsAbstract() || typeof(T).IsInterface()) { JsState.IsWritingDynamic = false; } return(result); } var sb = new StringBuilder(); using (var writer = new StringWriter(sb, CultureInfo.InvariantCulture)) { try { SerializationVisitorTracker.TrackSerialization(writer); JsvWriter <T> .WriteObject(writer, value); } finally { SerializationVisitorTracker.UnTrackSerialization(writer); } } return(sb.ToString()); }
public static void SerializeToWriter(object value, Type type, TextWriter writer) { if (value == null) { return; } if (type == typeof(string)) { writer.Write(value); return; } try { SerializationVisitorTracker.TrackSerialization(writer); JsvWriter.GetWriteFn(type)(writer, value); } finally { SerializationVisitorTracker.UnTrackSerialization(writer); } }