Mono.Cecil.MetadataResolver.GetTypeDefinition C# (CSharp) Method

GetTypeDefinition() static private method

static private GetTypeDefinition ( Mono.Cecil.ModuleDefinition module, TypeReference type ) : Mono.Cecil.TypeDefinition
module Mono.Cecil.ModuleDefinition
type TypeReference
return Mono.Cecil.TypeDefinition
		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 ());
		}

Usage Example

        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);
        }