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 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()); } }
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); }