public virtual object DeserializeFunction(MemoryStream memoryStream, Type type, int[][] structure) { if (structure != null) { var result = TypesConversions.Deserielize(memoryStream.ToArray(), type, structure); return(result); } return(BinaryFormatter.Deserialize(memoryStream)); }
public virtual MemoryStream SerializeFunction(object obj, out int[][] structure) { MemoryStream memoryStream; var type = obj.GetType(); if (type.IsArray) { Type elementType = type.GetElementType(); if (elementType != null && (elementType.IsPrimitive || elementType == typeof(decimal) || (elementType.IsArray && ((elementType.GetElementType()?.IsPrimitive ?? false) || elementType.GetElementType() == typeof(decimal))))) { var bytes = TypesConversions.Serielize(obj, out structure); memoryStream = new MemoryStream(bytes); return(memoryStream); } } memoryStream = new MemoryStream(); BinaryFormatter.Serialize(memoryStream, obj); memoryStream.Position = 0; structure = null; return(memoryStream); }