2.3.6.8 ArrayList

The ArrayList record defines an array of objects.


0


1


2


3


4


5


6


7


8


9

1
0


1


2


3


4


5


6


7


8


9

2
0


1


2


3


4


5


6


7


8


9

3
0


1

RecordTypeEnum

ObjectId

...

ClassName (29 bytes)

...

...

...

MemberCount

...

MemberName1

...

...

MemberName2

...

MemberName3

...

...

BinaryTypeEnum1

BinaryTypeEnum2

BinaryTypeEnum3

AdditionalInfo2

AdditionalInfo3

RecordTypeEnum (1 byte): A RecordTypeEnumeration value that identifies the record type. Its value MUST be 0x04.

ObjectId (4 bytes): An INT32 value ([MS-DTYP] section 2.2.22) that uniquely identifies the object in the serialization stream. An implementation MAY use any algorithm to generate the unique IDs. If the ObjectId is referenced by a MemberReference record elsewhere in the serialization stream, the ObjectId MUST be positive. If the ObjectId is not referenced by any MemberReference in the serialization stream, then the ObjectId SHOULD be positive, but MAY be negative.

ClassName (29 bytes): A LengthPrefixedString identifying the class name. Its value MUST be "System.Collections.ArrayList".

MemberCount (4 bytes): An INT32 value ([MS-DTYP] section 2.2.22) that specifies the number of members in this type. Its value MUST be 0x00000003.

MemberName1 (7 bytes): A LengthPrefixedString containing the first member name. The value MUST be "_items".

MemberName2 (6 bytes): A LengthPrefixedString containing the second member name. The value MUST be "_size".

MemberName3 (9 bytes): A LengthPrefixedString containing the third member name. The value MUST be "_version".

BinaryTypeEnum1 (1 byte): A BinaryTypeEnumeration value that specifies the binary type of the first member value. The value MUST be 0x05 (ObjectArray).

BinaryTypeEnum2 (1 byte): A BinaryTypeEnumeration value that specifies the binary type of the second member value. The value MUST be 0x00 (Primitive).

BinaryTypeEnum3 (1 byte): A BinaryTypeEnumeration value that specifies the binary type of the third member value. The value MUST be 0x00 (Primitive).

AdditionalInfo2 (1 byte): A PrimitiveTypeEnumeration value that specifies the primitive type of the second member value. The value MUST be 0x08 (Int32).

AdditionalInfo3 (1 byte): A PrimitiveTypeEnumeration value that specifies the primitive type of the third member value. The value MUST be 0x08 (Int32).