Akka.Interfaced.SlimSocket.StreamLengthMarker.WriteLength C# (CSharp) Метод

WriteLength() публичный Метод

public WriteLength ( bool recoverStreamPosition ) : void
recoverStreamPosition bool
Результат void
        public void WriteLength(bool recoverStreamPosition)
        {
            _endPosition = _stream.Position;
            var len = Length;
            _stream.Seek(_startPosition, SeekOrigin.Begin);
            var lenBytes = BitConverter.GetBytes(len);
            _stream.Write(lenBytes, 0, lenBytes.Length);

            if (recoverStreamPosition)
                _stream.Seek(_endPosition, SeekOrigin.Begin);
        }
    }

Usage Example

        public void Serialize(Stream dest, Exception value)
        {
            if (dest == null)
                throw new ArgumentNullException("dest");
            if (value == null)
                throw new ArgumentNullException("value");

            var type = value.GetType();
            int typeAlias = _data.TypeTable.GetAlias(type);
            var typeSerializable = _data.MessageSerializer.CanSerialize(type);

            dest.WriteByte((byte)((typeAlias != 0 ? 1 : 0) | (typeSerializable ? 2 : 0)));

            if (typeAlias != 0)
                dest.Write32BitEncodedInt(typeAlias);
            else
                dest.WriteString(type.FullName);

            if (typeSerializable)
            {
                var lengthMarker = new StreamLengthMarker(dest, true);
                _data.MessageSerializer.Serialize(dest, value);
                lengthMarker.WriteLength(true);
            }
        }
All Usage Examples Of Akka.Interfaced.SlimSocket.StreamLengthMarker::WriteLength