public static List <Mail163Message> GetMessages(HeapFileAnalyzer analyser) { List <Mail163Message> result = new List <Mail163Message>(); var t = analyser.ObjectInstanceInfos.Where(c => c.ClassName == "com.netease.mobimail.n.c.am").ToList(); foreach (var it in t) { var msg = new Mail163Message(); foreach (var it2 in it.InstanceFields) { switch (it2.Name) { case "t": msg.Content = GetJavaString((it2 as ReferenceObjectInfo).ReferenceTarget as ObjectInstanceInfo); break; case "s": msg.Theme = GetJavaString((it2 as ReferenceObjectInfo).ReferenceTarget as ObjectInstanceInfo); break; case "n": GetMessageSender(it2 as ReferenceObjectInfo, ref msg); break; default: break; } } result.Add(msg); } return(result); }
static void GetMessageSender(ReferenceObjectInfo senderRefer, ref Mail163Message msg) { if (senderRefer.ReferenceTarget != null) { var t = senderRefer.ReferenceTarget as ObjectInstanceInfo; foreach (var it2 in t.InstanceFields) { switch (it2.Name) { case "a": msg.SenderName = GetJavaString((it2 as ReferenceObjectInfo).ReferenceTarget as ObjectInstanceInfo); break; case "b": msg.SenderEmail = GetJavaString((it2 as ReferenceObjectInfo).ReferenceTarget as ObjectInstanceInfo); break; default: break; } } } }