public byte[] Serialize(object obj) { using (GaeaStream stream = new GaeaStream()) { stream.Encoder = _encoder; if (obj == null) { SerializerFactory.GetSerializer(null).WriteObject(obj,stream); } else { if (obj is IGaeaSerializer) { ((IGaeaSerializer)obj).Serialize(stream); } else { SerializerFactory.GetSerializer(obj.GetType()).WriteObject(obj, stream); } } return stream.ToArray(); } }