CborWriter.WriteStartMap(Nullable<Int32>) Method
Definition
Important
Some information relates to prerelease product that may be substantially modified before it’s released. Microsoft makes no warranties, express or implied, with respect to the information provided here.
Writes the start of a definite or indefinite-length map (major type 5).
public:
void WriteStartMap(Nullable<int> definiteLength);
public void WriteStartMap (int? definiteLength);
member this.WriteStartMap : Nullable<int> -> unit
Public Sub WriteStartMap (definiteLength As Nullable(Of Integer))
Parameters
The length of the definite-length map, or null
for an indefinite-length map.
Exceptions
The definiteLength
parameter cannot be negative.
Writing a new value exceeds the definite length of the parent data item.
-or-
The major type of the encoded value is not permitted in the parent data item.
-or-
The written data is not accepted under the current conformance mode.
Remarks
In canonical conformance modes, the writer will reject indefinite-length writes unless the ConvertIndefiniteLengthEncodings flag is enabled. Map contents are written as if arrays twice the length of the map's declared size. For example, a map of size 1 containing a key of type Int32 with a value of type string must be written by successive calls to WriteInt32(Int32) and WriteTextString(ReadOnlySpan<Char>). It is up to the caller to keep track of whether the next call is a key or a value. Fundamentally, this is a technical restriction stemming from the fact that CBOR allows keys of any type, for example, a map can contain keys that are maps themselves.