2.2.3.2 MethodCallArray

The MethodCallArray is a special use of the ArraySingleObject record. The record represents a serialized Array that can contain instances of any Remoting Type. The items of the Array include Input Arguments, Generic Type Arguments, Method Signature, Call Context, and Message Properties. Each item is conditional. The conditions for presence of the item are given with the definition of each item. The items, if present, MUST be in the following order:

  1. Input Arguments: An Array that contains the Input Arguments for the method. This item is conditional. If the MessageEnum field of the preceding BinaryMethodCall record has the ArgsInArray bit set, the item MUST be present; otherwise, the item MUST NOT be present.

  2. Generic Type Arguments: An Array of UnitySerializationHolder classes (1), as specified in [MS-NRTP] section 2.2.2.12. The presence of this field indicates that the method represented by the BinaryMethodCall record is a Generic Method. Each item of the array contains a Remoting Type that MUST be used as Generic Argument for the Generic Method. This field is conditional. If the MessageEnum field of the preceding BinaryMethodCall record has the GenericMethod bit set, the field MUST be present; otherwise, the field MUST NOT be present.<3>

  3. Method Signature: An Array of UnitySerializationHolder classes (1) as specified in [MS-NRTP] section 2.2.2.12. Each item of the Array contains the Remoting Type of an argument of the Remote Method. If the MessageEnum field of the preceding BinaryMethodCall record has the MethodSignatureInArray bit set, the field MUST be present; otherwise, the field MUST NOT be present. If present, the number of items in the Array MUST match the number of items in the Input Argument item.

  4. Call Context: An instance of the Class (2) "System.Runtime.Remoting.Messaging.LogicalCallContext". The Library name of the Class (2) is "mscorlib". Each name-value pair of the Call Context MUST be mapped to a Member name and Member value of the Class (2). If the MessageEnum field of the preceding BinaryMethodCall record has the ContextInArray bit set, the field MUST be present; otherwise, the field MUST NOT be present.

  5. Message Properties: An Array that can contain instances of any Remoting Type. Each instance is a DictionaryEntry, as specified in [MS-NRTP] section 2.2.2.6. If the MessageEnum field of the preceding BinaryMethodCall record has the PropertiesInArray bit set, the field MUST be present; otherwise, the field MUST NOT be present.