Пример #1
0
 public MethodMetadata(MethodBase method)
 {
     Name             = method.Name;
     GenericArguments = !method.IsGenericMethodDefinition ? null : TypeMetadata.EmitGenericArguments(method.GetGenericArguments()).ToList();
     ReturnType       = EmitReturnType(method);
     Parameters       = EmitParameters(method.GetParameters()).ToList();
     Modifiers        = EmitModifiers(method);
     Extension        = EmitExtension(method);
 }
Пример #2
0
        public TypeMetadata(Type type)
        {
            Name         = type.Name;
            AssemblyName = type.AssemblyQualifiedName;
            CreateDictionary();

            DeclaringType         = EmitDeclaringType(type.DeclaringType);
            Constructors          = MethodMetadata.EmitMethods(type.GetConstructors()).ToList();
            Methods               = MethodMetadata.EmitMethods(type.GetMethods()).ToList();
            NestedTypes           = EmitNestedTypes(type.GetNestedTypes()).ToList();
            ImplementedInterfaces = EmitImplements(type.GetInterfaces()).ToList();
            GenericArguments      = !type.IsGenericTypeDefinition ? null : TypeMetadata.EmitGenericArguments(type.GetGenericArguments()).ToList();
            Modifiers             = EmitModifiers(type);
            BaseType              = EmitExtends(type.BaseType);
            Properties            = PropertyMetadata.EmitProperties(type.GetProperties()).ToList();
            Type = GetTypeKind(type);
            //m_Attributes = type.GetCustomAttributes(false).Cast<Attribute>().ToList();
            Fields = EmitFields(type.GetFields()).ToList();
        }