protected List <string> NamesOfMembersAndIgnoredProperties()
        {
            var result =
                CustomMembers.Select(x => x.Key.Member.Name)
                .Union(CustomFunctionMembers.Select(x => x.Key.Member.Name))
                .ToList();

            result.AddRange(IgnoreMemberList);
            return(result);
        }
        public void MapMember <TSourceMember, TDestMember>(Expression <Func <TN, TDestMember> > left,
                                                           Expression <Func <T, TSourceMember> > right)
        {
            if (left == null)
            {
                throw new ArgumentNullException("left");
            }

            if (right == null)
            {
                throw new ArgumentNullException(RightStr);
            }

            CustomMembers.Add(
                new KeyValuePair <MemberExpression, Expression>(left.Body as MemberExpression, right.Body));
            //MapMember(left.Body as MemberExpression, right.Body);
        }