Created attachment 19941 [details]
generated il code
Part of il(emit) generated code attached.
The defect appears only in release mode(if start .exe with '--debug=mdb-optimizations', app will be work correctly).
this code throw exception with message: " Error feeding module: Field "xxx.TradeMessage.aggressorSide", bound to xxx.Messages.AggressorSide (underliing type is System.Int32), cannot contain unsupported value 255 of enum xxx.Messages.AggressorSide. This value is out of supported range."
can see(from attached il src) exception mean that 'AggressorSide_6' local variable has '255' value. but 'AggressorSide_6' local variable was assigned with SByte value[-128;127].
method ReadEnumInt8() from which was taken SByte can be represented as (with simplifications):
return (SByte)byteArray[i]; //where byteArray is byte
It looks like mono skip Byte to SByte convertion.