public static void Write(this BinaryWriter writer, ISerializable serializable) { SerializerPointer serializerPointer = serializable.GetType().GetCustomAttribute <SerializerPointer>(); if (serializerPointer == null) { throw new FieldAccessException("Serializable does not have a pointer attribute!"); } writer.Write(serializerPointer.Identifier); serializable.ToByteArray(writer); }