protected override IEnumerable <MemberInfo> GetMemberInfosForType(ExpressionContext context, Type type)
        {
            BindingFlags?flags = null;

            if (context != null)
            {
                flags = context.GetBindingFlags();
            }
            else if (this.Factory != null)
            {
                flags = this.Factory.GetBindingFlags();
            }
            return(flags == null?type.GetMembers() : type.GetMembers(flags.Value));
        }