public TypeReflector(Type type) { using (var log = new EnterExitLogger(s_log, Level.Info, "type = {0}", type)) { m_type = type; m_fields = new FieldDict(); m_methods = new MethodDict(); m_staticMethods = new MethodDict(); var fields = m_type.GetFields(MemberReflector.AllDeclared); foreach (var fi in fields) { m_fields.Add(fi.Name, new FieldReflector(fi)); } var methods = m_type.GetMethods(MemberReflector.PrivateInstanceDeclared); foreach (var mi in methods) { m_methods.Add(BuildMethodSignature(mi), new MethodReflector(mi)); } methods = m_type.GetMethods(MemberReflector.AllStaticDeclared); foreach (var mi in methods) { m_staticMethods.Add(BuildMethodSignature(mi), new MethodReflector(mi)); } } }
public bool AddMethod(MethodContext method) { if (this.MethodDict.Contains(method.ProcDesc)) { return(false); } MethodDict.Add(method.ProcDesc, method); return(true); }
public TKTProcDesc SearchProc(/*SymbolTable table, */ TKTProcDesc procDesc) { TKTProcDesc proc = MethodDict.SearchProc(procDesc); if (proc != null) { proc.ExMethod = new ExMethodInfo(MethodDict.Get(proc).EmitContext.CurrentMethodBuilder, true); } else if (parentClass != null) { proc = parentClass.SearchProc(procDesc); } else if (BaseGcl != null) { proc = BaseGcl.SearchProc(procDesc); } return(proc); }