2.2.5.2 Serialization of Complex Objects
This section describes how to serialize Complex Objects. A Complex Object is one of the following:
An object of a non-primitive type (a type not covered in the section 2.2.5.1).
An Extended Primitive Object - an object which in addition to a value of a primitive type (a type covered in section 2.2.5.1) contains some extra information from section 2.2.5.3.4 (for example, ToString or extended properties).
A Complex Object sent by the higher layer to the PowerShell Remoting Protocol for transport MUST have been encoded using one of the following representations.
As a reference to an earlier object (section 2.2.5.2.1).
The higher layer chooses either to encode a subset of the Complex Object's properties or to represent the Complex Object as a string. The type of the source Complex Object can be lost in the encoding.