public byte[] Serialize <T>(T obj) { Type type = typeof(T); if (type.IsValueType) { return((byte[])m_fSerializeStruct.Invoke(this, new object[] { obj })); } else if (type.IsClass) { CustomRawBinarySerializer custom = obj as CustomRawBinarySerializer; #if NET5_0 if (custom is not null) #else if (custom != null) #endif { return(SerializeCustom(custom)); } } return(DefaultSerializer?.Serialize(obj) ?? throw new ArgumentException($"Can\'t serialize \'obj\' of type \'{type.FullName}\'")); }
private byte[] SerializeCustom(CustomRawBinarySerializer obj) { return(obj.Serialize()); }