コード例 #1
0
        private static string DecodeMessage(ushort msgId, IChannelDecoder decoder, List <object> args)
        {
            var message = decoder.DecodeMessage(msgId);

            switch (args.Count)
            {
            case 0:
                return(message);

            case 1:
                return(string.Format(message, args[0]));

            case 2:
                return(string.Format(message, args[0], args[1]));

            case 3:
                return(string.Format(message, args[0], args[1], args[2]));

            case 4:
                return(string.Format(message, args[0], args[1], args[2], args[3]));

            default:
                throw new BinLogDecodingException($"Too many arguments in log entry: {args.Count}");
            }
        }
コード例 #2
0
        private static int DecodeArguments(int count, ReadOnlySpan <byte> src, IChannelDecoder decoder, List <object> args)
        {
            var bytesRead = 0;

            for (var i = 0; i < count; i++)
            {
                bytesRead += decoder.DecodeArgument(src.Slice(bytesRead), out var arg);
                args.Add(arg);
            }

            return(bytesRead);
        }