Google.Protobuf.CodedOutputStream.WriteLength C# (CSharp) Method

WriteLength() public method

Writes a length (in bytes) for length-delimited data.
This method simply writes a rawint, but exists for clarity in calling code.
public WriteLength ( int length ) : void
length int Length value, in bytes.
return void
        public void WriteLength(int length)
        {
            WriteRawVarint32((uint) length);
        }

Usage Example

        public void DuplicateKeys_LastEntryWins()
        {
            var memoryStream = new MemoryStream();
            var output       = new CodedOutputStream(memoryStream);

            var key    = 10;
            var value1 = 20;
            var value2 = 30;

            // First entry
            output.WriteTag(TestMap.MapInt32Int32FieldNumber, WireFormat.WireType.LengthDelimited);
            output.WriteLength(4);
            output.WriteTag(1, WireFormat.WireType.Varint);
            output.WriteInt32(key);
            output.WriteTag(2, WireFormat.WireType.Varint);
            output.WriteInt32(value1);

            // Second entry - same key, different value
            output.WriteTag(TestMap.MapInt32Int32FieldNumber, WireFormat.WireType.LengthDelimited);
            output.WriteLength(4);
            output.WriteTag(1, WireFormat.WireType.Varint);
            output.WriteInt32(key);
            output.WriteTag(2, WireFormat.WireType.Varint);
            output.WriteInt32(value2);
            output.Flush();

            var parsed = TestMap.Parser.ParseFrom(memoryStream.ToArray());

            Assert.AreEqual(value2, parsed.MapInt32Int32[key]);
        }
All Usage Examples Of Google.Protobuf.CodedOutputStream::WriteLength