public bool IsValid(out string errorMsg) { bool invalid = false; errorMsg = string.Empty; var path = "/proc/sys/fs/mqueue/"; if (string.IsNullOrEmpty(QueueName)) { invalid |= true; errorMsg += "Queue Name is empty\r\n"; } else if (QueueName.Contains(" ")) { invalid |= true; errorMsg += "Queue Name contains a space\r\n"; } if (AccessModifier < 0 || AccessModifier > 511) { invalid |= true; errorMsg += "Access Modifier not in valid range\r\n"; } if (Type.GetType("Mono.Runtime") != null) { var lines = File.ReadAllLines(path + "msg_max"); if (QueueSize <= 0 || int.Parse(lines[0]) < QueueSize) { invalid |= true; errorMsg += "Queue Size not in valid range\r\n"; } } else { if (QueueSize <= 0) { invalid |= true; errorMsg += "Queue Size not in valid range\r\n"; } } if (Type.GetType("Mono.Runtime") != null) { var lines = File.ReadAllLines(path + "msgsize_max"); if (MessageSize <= 0 || int.Parse(lines[0]) < MessageSize) { invalid |= true; errorMsg += "Message Size not in valid range\r\n"; } } else { if (MessageSize <= 0) { invalid |= true; errorMsg += "Message Size not in valid range\r\n"; } } return(!invalid); }