public void MarshalConfigTests(Type type, bool marshalEnable, bool marshalSerialize, bool marshalParse) { ITypeModel typeModel = RuntimeTypeModel.CreateFrom(type); var tm = Assert.IsType <ValueStructTypeModel>(typeModel); Assert.Equal(marshalSerialize, tm.CanMarshalOnSerialize); Assert.Equal(marshalParse, tm.CanMarshalOnParse); var options = new FlatBufferSerializerOptions { EnableValueStructMemoryMarshalDeserialization = marshalEnable }; CodeGeneratedMethod serializeMethod = tm.CreateSerializeMethodBody(ContextHelpers.CreateSerializeContext(options)); CodeGeneratedMethod parseMethod = tm.CreateParseMethodBody(ContextHelpers.CreateParserContext(options)); Assert.Equal(parseMethod.MethodBody.Contains("MemoryMarshal.Cast"), marshalEnable && marshalParse); Assert.Equal(serializeMethod.MethodBody.Contains("MemoryMarshal.Cast"), marshalEnable && marshalSerialize); }