public List<QueueMessage> ListTop10Messages(string queueUrl) { var req = new ReceiveMessageRequest() { MaxNumberOfMessages = 10, QueueUrl = queueUrl }; req.AttributeName.Add("SentTimestamp"); req.AttributeName.Add("ApproximateReceiveCount"); req.AttributeName.Add("ApproximateFirstReceiveTimestamp"); var result = new List<QueueMessage>(10); var response = client.ReceiveMessage(req); if (response.IsSetReceiveMessageResult() && response.ReceiveMessageResult.IsSetMessage()) { DateTime epochDate = new DateTime(1970,1,1,0,0,0,DateTimeKind.Utc); foreach (Message msg in response.ReceiveMessageResult.Message) { var qm = new QueueMessage() { Body = msg.Body, ReceiptHandle = msg.ReceiptHandle }; if (msg.IsSetAttribute()) { foreach (Amazon.SQS.Model.Attribute att in msg.Attribute) { switch (att.Name) { case "SentTimestamp": qm.Sent = epochDate.AddMilliseconds(double.Parse(att.Value)); break; case "ApproximateReceiveCount": qm.ApproximateReceiveCount = Int32.Parse(att.Value); break; case "ApproximateFirstReceiveTimestamp": qm.FirstReceived = epochDate.AddMilliseconds(double.Parse(att.Value)); break; } } } result.Add(qm); } } return result; }