void InitMethods() { if (tokenToMethod != null) return; tokenToMethod = new Dictionary<int, MMethod>(typeDef.Methods.Count); methodRefToMethod = new MethodDefDict<MMethod>(); var tmpTokenToMethod = new Dictionary<int, MethodBase>(); var flags = BindingFlags.DeclaredOnly | BindingFlags.Instance | BindingFlags.Static | BindingFlags.Public | BindingFlags.NonPublic; foreach (var m in ResolverUtils.GetMethodBases(type, flags)) tmpTokenToMethod[m.MetadataToken] = m; foreach (var m in typeDef.Methods) { var token = (int)m.MDToken.Raw; var method = new MMethod(tmpTokenToMethod[token], m); tokenToMethod[token] = method; methodRefToMethod.Add(method.methodDef, method); } }