/// <summary> /// Implementation of serialization, which uses JsonSerializer internally. /// You can specify JsonSerializerOptions as context. /// </summary> /// <param name="writer"> The SerializationWriter to use </param> /// <param name="context"> Optional context to use as a hint as to what to store (BitVector32 is useful) </param> public virtual void SerializeOwnedData(SerializationWriter writer, object?context) { using (writer.EnterBlock(1)) { string s = JsonSerializer.Serialize(this, GetType(), context as JsonSerializerOptions); writer.Write(s); } }
/// <summary> /// Store internal data directly into a SerializationWriter. /// </summary> /// <param name="writer"> The SerializationWriter to use </param> /// <param name="context"> Optional context to use as a hint as to what to store (BitVector32 is useful) </param> public virtual void SerializeOwnedData(SerializationWriter writer, object context) { using (writer.EnterBlock(1)) { var formatter = new BinaryFormatter { AssemblyFormat = FormatterAssemblyStyle.Simple }; formatter.Serialize(writer.BaseStream, this); } }