Esempio n. 1
0
        /// <summary>
        /// Returns property name using lambda
        /// </summary>
        /// <returns></returns>
        public string GetPropertyName()
        {
            // create a list of property names
            var nameTokens = new LinkedListWithInit <string>()
            {
                MemberExpresion.GetMemberExpressionName()
            };

            // get nested expression
            var parentExp = MemberExpresion.Expression;

            // while nested expression is member expression
            while (parentExp is MemberExpression parentMemberExpression)
            {
                // add string property name to the list
                nameTokens.AddFirst(parentMemberExpression.GetMemberExpressionName());

                // reset the parentExp to go one more level deep
                parentExp = parentMemberExpression.Expression;
            }

            // join the tokens together
            return(string.Join(Deliminter, nameTokens));
        }