public virtual MrType GetTypeFromDefinition(MetadataReader reader, TypeDefinitionHandle handle, byte rawTypeKind = 0) { TypeDefinition definition = reader.GetTypeDefinition(handle); if (definition.IsNested) { // bugbug: For some reason, for nested types, the caller seems to expect // the outer type. TypeDefinitionHandle declaringTypeHandle = definition.GetDeclaringType(); return(GetTypeFromDefinition(reader, declaringTypeHandle, 0)); // + "/" + name; } return(handle.AsMrType(Assembly)); }
public virtual MrType GetTypeFromDefinition(MetadataReader reader, TypeDefinitionHandle handle, byte rawTypeKind = 0) { TypeDefinition definition = reader.GetTypeDefinition(handle); string name = definition.Namespace.IsNil ? reader.GetString(definition.Name) : reader.GetString(definition.Namespace) + "." + reader.GetString(definition.Name); // bugbug //if (definition.Attributes.IsNested()) //{ // TypeDefinitionHandle declaringTypeHandle = definition.GetDeclaringType(); // return GetTypeFromDefinition(reader, declaringTypeHandle, 0) + "/" + name; //} return(handle.AsMrType(Assembly)); }