Пример #1
0
        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));
        }