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}"); } }