public List <string> GetClasses() { try { if (_assembly != null) { foreach (AssemblyDef asm in _assembly) { TypeDef[] type = asm.GetTypes(); _classes = new List <string>(); IEnumerator enu = type.GetEnumerator(); while (enu.MoveNext()) { if (_readThruTypefilter != null) { if (!_readThruTypefilter.FilterType((TypeDef)enu.Current)) { continue; } } if (_writeThruTypefilter != null) { if (!_writeThruTypefilter.FilterType((TypeDef)enu.Current)) { continue; } } string innerClass = enu.Current.ToString(); if (innerClass.Contains("+")) { innerClass = innerClass.Replace("+", "."); } _classes.Add(innerClass); } } return(_classes); } } catch (Exception) { throw; } return(null); }
public bool HasBaseType(Type baseType) { TypeDefinition typeDefinition = (TypeDefinition)typeReference; if (typeDefinition != null) if (typeDefinition.BaseType != null) { string fullName = System.Reflection.Assembly.CreateQualifiedName(typeDefinition.BaseType.Scope.ToString(), typeDefinition.BaseType.FullName); Type bstype = Type.GetType(fullName, false); if (bstype == baseType) { return(true); } TypeDef typeDef = new TypeDef(typeDefinition.BaseType.Resolve()); var classTypeFilter = new ClassTypeFilter(baseType); return(classTypeFilter.FilterType(typeDef)); } }