public TypedObjectMapper <T> Map(string name, Expression <Func <T, object> > expression)
        {
            var memberExpression = expression.GetMemberExpressionOrNull();

            if (memberExpression != null && memberExpression.Member.BelongsTo(Type))
            {
                MappedMembers.Add(memberExpression.Member);
            }
            var func = expression.Compile();

            _maps[name] = expression.Body.Type.IsSimpleType()
                ? func
                : t => func(t).ToJsonSuppressErrors();
            return(this);
        }