public void RegisterMethodDesc(MethodDefinition methodDef, MethodDesc methodDesc) { _methodDescByMethodDef[methodDef] = methodDesc; }
private MethodDesc[] CreateMethodSlotsFromTypeDef(TypeDefinition typeDef) { var methods = new List<MethodDefinition>(); methods.AddRange(GetVirtualMethodDefsFromTypeDef(typeDef)); // virtual methods.AddRange(typeDef.Methods.Where(x => !x.IsVirtual && !x.IsStatic)); // non-virtual methods.AddRange(typeDef.Methods.Where(x => x.IsStatic)); // static return methods .Select((x, i) => { var methodDesc = _classLoader.LookupMethodDescFromMethodDef(x); if (methodDesc == null) { methodDesc = new MethodDesc() { MdToken = x.MetadataToken, Name = x.FullName, Definition = x, Slot = i }; _classLoader.RegisterMethodDesc(x, methodDesc); } return methodDesc; }) .ToArray(); }