internal static byte[] GetBytesChecked <T>(this PacketConverter <T> converter, T value) { try { var buffer = converter.GetBytes(value); if (buffer == null) { buffer = Empty.Array <byte>(); } var define = converter.Length; if (define > 0 && define != buffer.Length) { throw PacketException.ConversionMismatch(define); } return(buffer); } catch (Exception ex) when(PacketException.ReThrowFilter(ex)) { throw PacketException.ConversionError(ex); } }