public static IEnumerable <TMember> Select <TMember>(this TypeMember type, Func <TMember, bool> where = null) where TMember : AbstractMember { var selector = type.Members.OfType <TMember>(); if (where != null) { selector = selector.Where(where); } return(selector); }
//----------------------------------------------------------------------------------------------------------------------------------------------------- public static IEnumerable <TMember> SelectPublicInstance <TMember>(this TypeMember type, Func <TMember, bool> where = null) where TMember : AbstractMember { var selector = Select <TMember>(type, where) .Where(m => m.Visibility == MemberVisibility.Public && (m.Modifier & MemberModifier.Static) == 0 ); return(selector); }
//----------------------------------------------------------------------------------------------------------------------------------------------------- public MethodParameter(string name, int position, TypeMember type, MethodParameterModifier modifier, params AttributeDescription[] attributes) : this() { this.Name = name; this.Position = position; this.Type = type; this.Modifier = modifier; if (attributes != null) { this.Attributes.AddRange(attributes); } }
//----------------------------------------------------------------------------------------------------------------------------------------------------- public MethodParameter(string name, int position, TypeMember type) : this(name, position, type, MethodParameterModifier.None) { }
//----------------------------------------------------------------------------------------------------------------------------------------------------- public EventMember(MemberVisibility visibility, MemberModifier modifier, TypeMember delegateType, string name) : base(visibility, modifier, name) { this.DelegateType = delegateType; }
//----------------------------------------------------------------------------------------------------------------------------------------------------- public FieldMember(TypeMember declaringType, MemberVisibility visibility, MemberModifier modifier, TypeMember type, string name) : base(declaringType, visibility, modifier, name) { this.Type = type; }
//----------------------------------------------------------------------------------------------------------------------------------------------------- protected AbstractMember(TypeMember declaringType, MemberVisibility visibility, MemberModifier modifier, string name) : this(visibility, modifier, name) { this.DeclaringType = declaringType; }