public object Parse(string value, object argument) { var bytes = Encoding.UTF8.GetBytes(value.ToCharArray()); using (var ms = new MemoryStream(bytes)) { var scanner = new Scanner(ms); var parser = new Parser(scanner); parser.Parse(); var sn = int.Parse(Regex.Match(value, @"(\d+)$").Value); return(MessageInfo.FromBodyPart(parser.Root, sn, value)); } }