Auxilium.Classes.Pack.Serialize C# (CSharp) Method

Serialize() public method

public Serialize ( ) : byte[]
return byte[]
        public byte[] Serialize(params object[] data)
        {
            try
            {
                MemoryStream Stream = new MemoryStream();
                BinaryWriter Writer = new BinaryWriter(Stream, Encoding.UTF8);
                byte Current = 0;

                Writer.Write(Convert.ToByte(data.Length));

                for (int I = 0; I <= data.Length - 1; I++)
                {
                    Current = Table[data[I].GetType()];
                    Writer.Write(Current);

                    switch (Current)
                    {
                        case 0:
                            Writer.Write((bool)data[I]);
                            break;
                        case 1:
                            Writer.Write((byte)data[I]);
                            break;
                        case 2:
                            Writer.Write(((byte[])data[I]).Length);
                            Writer.Write((byte[])data[I]);
                            break;
                        case 3:
                            Writer.Write((char)data[I]);
                            break;
                        case 4:
                            Writer.Write(((char[])data[I]).ToString());
                            break;
                        case 5:
                            Writer.Write((decimal)data[I]);
                            break;
                        case 6:
                            Writer.Write((double)data[I]);
                            break;
                        case 7:
                            Writer.Write((int)data[I]);
                            break;
                        case 8:
                            Writer.Write((long)data[I]);
                            break;
                        case 9:
                            Writer.Write((sbyte)data[I]);
                            break;
                        case 10:
                            Writer.Write((short)data[I]);
                            break;
                        case 11:
                            Writer.Write((float)data[I]);
                            break;
                        case 12:
                            Writer.Write((string)data[I]);
                            break;
                        case 13:
                            Writer.Write((uint)data[I]);
                            break;
                        case 14:
                            Writer.Write((ulong)data[I]);
                            break;
                        case 15:
                            Writer.Write((ushort)data[I]);
                            break;
                        case 16:
                            Writer.Write(((System.DateTime)data[I]).ToBinary());
                            break;
                    }
                }

                Writer.Close();
                return Stream.ToArray();
            }
            catch
            {
                return null;
            }
        }