public string Serialize<T>(T obj, IonTextOptions options, IScalarWriter scalarWriter = null) { using (var sw = new StringWriter()) { var writer = new IonTextWriter(sw, options); IonSerializationPrivate.WriteObject(writer, obj, scalarWriter); return sw.ToString(); } }
public Task SerializeAsync<T>(T obj, Stream stream, IonTextOptions options) { if (!stream.CanWrite) throw new ArgumentException("Stream must be writable", nameof(stream)); using (var streamWriter = new StreamWriter(stream)) { var writer = new IonTextWriter(streamWriter, options); IonSerializationPrivate.WriteObject(writer, obj, null); } return Task.CompletedTask; }
public void Serialize <T>(T obj, Stream stream, IScalarWriter scalarWriter = null) { if (!stream.CanWrite) { throw new ArgumentException("Stream must be writable", nameof(stream)); } using (var binWriter = new ManagedBinaryWriter(stream, Symbols.EmptySymbolTablesArray)) { IonSerializationPrivate.WriteObject(binWriter, obj, scalarWriter); binWriter.Flush(); } }
public byte[] Serialize <T>(T obj, IScalarWriter scalarWriter = null) { using (var stream = new MemoryStream()) { using (var binWriter = new ManagedBinaryWriter(stream, Symbols.EmptySymbolTablesArray)) { IonSerializationPrivate.WriteObject(binWriter, obj, scalarWriter); binWriter.Flush(); binWriter.Finish(); } return(stream.GetWrittenBuffer()); } }