static TypeDefinition GetTypeDefinition (ModuleDefinition module, TypeReference type) { if (!type.IsNested) return module.GetType (type.Namespace, type.Name); var declaring_type = type.DeclaringType.Resolve (); if (declaring_type == null) return null; return declaring_type.GetNestedType (type.TypeFullName ()); }
private static TypeDefinition GetType(ModuleDefinition module, TypeReference reference) { TypeDefinition typeDefinition = MetadataResolver.GetTypeDefinition(module, reference); if (typeDefinition != null) { return(typeDefinition); } if (!module.HasExportedTypes) { return(null); } Collection <ExportedType> exportedTypes = module.ExportedTypes; for (int i = 0; i < exportedTypes.Count; i++) { ExportedType item = exportedTypes[i]; if (!(item.Name != reference.Name) && !(item.Namespace != reference.Namespace)) { return(item.Resolve()); } } return(null); }