public void ParseClass(TypeDefinitionHandle typeHandle, string methodName = "", MethodSignature signature = null) { var type = Reader.GetTypeDefinition(typeHandle); var typeName = Reader.GetString(type.Name); if (CilParser.IgnoreClassList.Contains(typeName)) return; var fqName = GetFullyQualifiedName(type); Class clazz; if (Context.Program.Classes.ContainsKey(fqName)) clazz = Context.Program.Classes[fqName]; else { clazz = new Class(fqName); Context.AddClass(this, typeHandle, clazz); } //Console.WriteLine("=== Class: " + fqName + " ==="); if (methodName != null) { ParseMethods(type.GetMethods(), methodName, signature); } }
public void AddClass(InspectableAssembly ia, TypeDefinitionHandle typeHandle, Class c) { int token = MetadataTokens.GetToken(ia.Reader, typeHandle); m_tokenReference.Add(token, c); Program.Classes.Add(c.Name, c); }