Check base types for property/field

This commit is contained in:
de4dot 2012-03-03 18:23:53 +01:00
parent 77f1f2de67
commit 5c943d759d

View File

@ -189,17 +189,29 @@ namespace de4dot.code.renamer.asmmodules {
}
static FieldDef findFieldByName(TypeDef typeDef, string name) {
foreach (var fieldDef in typeDef.AllFields) {
if (fieldDef.FieldDefinition.Name == name)
return fieldDef;
while (typeDef != null) {
foreach (var fieldDef in typeDef.AllFields) {
if (fieldDef.FieldDefinition.Name == name)
return fieldDef;
}
if (typeDef.baseType == null)
break;
typeDef = typeDef.baseType.typeDef;
}
return null;
}
static PropertyDef findPropertyByName(TypeDef typeDef, string name) {
foreach (var propDef in typeDef.AllProperties) {
if (propDef.PropertyDefinition.Name == name)
return propDef;
while (typeDef != null) {
foreach (var propDef in typeDef.AllProperties) {
if (propDef.PropertyDefinition.Name == name)
return propDef;
}
if (typeDef.baseType == null)
break;
typeDef = typeDef.baseType.typeDef;
}
return null;
}