/// <summary> /// Serializes an object that implements INGRIDSerializable and returns serialized byte array. /// </summary> /// <param name="serializableObject">Object to serialize</param> /// <returns>Serialized object as byte array</returns> public static byte[] SerializeToByteArray(INGRIDSerializable serializableObject) { var stream = new MemoryStream(); new NGRIDDefaultSerializer(stream).WriteObject(serializableObject); return(stream.ToArray()); }
/// <summary> /// Serializes an object that implements INGRIDSerializable interface. /// Object may be null. /// </summary> /// <param name="serializableObject">object to serialize</param> public void WriteObject(INGRIDSerializable serializableObject) { if (serializableObject == null) { _stream.WriteByte(0); return; } _stream.WriteByte(1); serializableObject.Serialize(this); }
/// <summary> /// Serializes an array that all items implements INGRIDSerializable interface. /// Object array may be null or empty. /// </summary> /// <param name="serializableObjects">objects to serialize</param> public void WriteObjectArray(INGRIDSerializable[] serializableObjects) { if (serializableObjects == null) { WriteInt32(-1); } else { WriteInt32(serializableObjects.Length); for (var i = 0; i < serializableObjects.Length; i++) { WriteObject(serializableObjects[i]); } } }
/// <summary> /// Serializes an object that implements INGRIDSerializable to a Stream. /// </summary> /// <param name="stream">Stream to write serialized object</param> /// <param name="serializableObject">Object to serialize</param> public static void SerializeToStream(Stream stream, INGRIDSerializable serializableObject) { new NGRIDDefaultSerializer(stream).WriteObject(serializableObject); }