public static object? ReadObject()

in src/Microsoft.Azure.SignalR.Serverless.Protocols/Internal/MessagePackReaderExtensions.cs [75:104]


    public static object? ReadObject(ref this MessagePackReader reader, string field)
    {
        switch (reader.NextMessagePackType)
        {
            case MessagePackType.Binary: return reader.ReadBytes().GetValueOrDefault().ToArray();

            case MessagePackType.Integer: return reader.ReadInt64();
            case MessagePackType.Boolean: return reader.ReadBoolean();
            case MessagePackType.Float: return reader.ReadDouble();
            case MessagePackType.String: return reader.ReadString();
            case MessagePackType.Array: return reader.ReadArray(field);
            case MessagePackType.Map:
                var propertyCount = reader.ReadMapHeader();
                var map = new Dictionary<string, object?>();
                for (var i = 0; i < propertyCount; i++)
                {
                    var key = reader.ReadString().ThrowWhenNull();
                    var value = reader.ReadObject(field);
                    map[key] = value;
                }
                return map;
            case MessagePackType.Nil:
                reader.ReadNil();
                return null;
            case MessagePackType.Extension:
            case MessagePackType.Unknown:
            default:
                return null;
        }
    }