internal TypeMetadata(Type type) { //m_Type = type; m_typeName = type.Name; if (!m_typesMetadata.ContainsKey(this.m_typeName)) { m_typesMetadata.Add(this.m_typeName, this); } m_DeclaringType = EmitDeclaringType(type.DeclaringType); m_Constructors = MethodMetadata.EmitMethods(type.GetConstructors()); m_Methods = MethodMetadata.EmitMethods(type.GetMethods()); m_NestedTypes = EmitNestedTypes(type.GetNestedTypes()); m_ImplementedInterfaces = EmitImplements(type.GetInterfaces()); m_GenericArguments = !type.IsGenericTypeDefinition ? null : TypeMetadata.EmitGenericArguments(type.GetGenericArguments()); m_Modifiers = EmitModifiers(type); m_BaseType = EmitExtends(type.BaseType); m_Properties = PropertyMetadata.EmitProperties(type.GetProperties()); m_TypeKind = GetTypeKind(type); //m_Attributes = type.GetCustomAttributes(false).Cast<Attribute>(); }