1.3 Overview

The .NET Remoting: Binary Format Data Structure defines a set of structures that represent object graph or method invocation information as an octet stream. One possible application of the structure is as the serialization format for the data model as specified in [MS-NRTP] section 3.1.1.

This specification defines the records used by this format, and the grammar for writing the records to the serialization stream.

The format provides structures for mapping instances of data that conform to the Remoting Data Model into octets. The Remoting Data Model is specified in [MS-NRTP] section 3.1.1.

The format consists of a sequence of variable-length records. The records are used to hold the serialized instances of Classes (2), Arrays, Primitive Types, and method invocations. There are multiple record types to represent each of these instances. The various record types optimize the wire size of the serialized instance. This section specifies the structure of each record in detail. For clarity, the records are grouped as follows:

  • Class (2) records contain Class (2) instances. The format allows serialization of Class Metadata, in addition to the actual data. Richness of metadata directly contributes to the wire size. The amount of metadata can be reduced by conveying implicit information through special record types and by sharing metadata across records.

  • Array records contain Array instances. There is a general record type for Array that can represent multiple dimensions and nonzero lower bound. There are more compact Array records for frequently used Array types such as single-dimensional Array of String, Object, and Primitive Values.

  • Members reference records contain Data Values of Class (2) Members or Array items. There are different record types for Null Object, string values, Primitive Type values, and instances of Classes (2) and Arrays.

  • Method invocation records contain information about Remote Method, Server Type, Arguments, Return Value, Exception, Message Properties, and Call Context.

  • Other records include records that are used to mark the beginning and end of the format.