public void Write(BinaryFormatterWriter output) { output.WriteByte((byte)_binaryHeaderEnum); output.WriteInt32(_objectId); output.WriteString(_name); output.WriteInt32(_numMembers); for (int i = 0; i < _numMembers; i++) { output.WriteString(_memberNames[i]); } for (int i = 0; i < _numMembers; i++) { output.WriteByte((byte)_binaryTypeEnumA[i]); } for (int i = 0; i < _numMembers; i++) { BinaryTypeConverter.WriteTypeInfo(_binaryTypeEnumA[i], _typeInformationA[i], _memberAssemIds[i], output); } if (_assemId > 0) { output.WriteInt32(_assemId); } }
public void Write(BinaryFormatterWriter output) { switch (_binaryHeaderEnum) { case BinaryHeaderEnum.ArraySinglePrimitive: output.WriteByte((byte)_binaryHeaderEnum); output.WriteInt32(_objectId); output.WriteInt32(_lengthA[0]); output.WriteByte((byte)((InternalPrimitiveTypeE)_typeInformation)); break; case BinaryHeaderEnum.ArraySingleString: output.WriteByte((byte)_binaryHeaderEnum); output.WriteInt32(_objectId); output.WriteInt32(_lengthA[0]); break; case BinaryHeaderEnum.ArraySingleObject: output.WriteByte((byte)_binaryHeaderEnum); output.WriteInt32(_objectId); output.WriteInt32(_lengthA[0]); break; default: output.WriteByte((byte)_binaryHeaderEnum); output.WriteInt32(_objectId); output.WriteByte((byte)_binaryArrayTypeEnum); output.WriteInt32(_rank); for (int i = 0; i < _rank; i++) { output.WriteInt32(_lengthA[i]); } if ((_binaryArrayTypeEnum == BinaryArrayTypeEnum.SingleOffset) || (_binaryArrayTypeEnum == BinaryArrayTypeEnum.JaggedOffset) || (_binaryArrayTypeEnum == BinaryArrayTypeEnum.RectangularOffset)) { for (int i = 0; i < _rank; i++) { output.WriteInt32(_lowerBoundA[i]); } } output.WriteByte((byte)_binaryTypeEnum); BinaryTypeConverter.WriteTypeInfo(_binaryTypeEnum, _typeInformation, _assemId, output); break; } }