public TImpl ResolveOverload(JsInstance[] args, Type[] generics) { Type[] argTypes = Array.ConvertAll <JsInstance, Type>(args, x => m_marshaller.GetInstanceType(x)); string key = MakeKey(argTypes, generics); TImpl method; if (!m_protoCache.TryGetValue(key, out method)) { TMemberInfo info = MatchMethod(argTypes, GetMembers(generics, args.Length)); if (info != null && !m_reflectCache.TryGetValue(info, out method)) { m_reflectCache[info] = method = WrapMember(info); } m_protoCache[key] = method; } return(method); }