CalculateFunding.Tests.Common.Helpers.ReflectionExtensions.GetPropertyInfo C# (CSharp) Метод

GetPropertyInfo() приватный статический Метод

private static GetPropertyInfo ( Expression property ) : PropertyInfo
property Expression
Результат PropertyInfo
        private static PropertyInfo GetPropertyInfo<TTarget, TPropertyType>(Expression<Func<TTarget, TPropertyType>> property)
        {
            if (property == null)
            {
                throw new ArgumentNullException(nameof(property));
            }

            if (property.Body is UnaryExpression unaryExp)
            {
                if (unaryExp.Operand is MemberExpression memberExp)
                {
                    return (PropertyInfo) memberExp.Member;
                }
            }
            else if (property.Body is MemberExpression memberExp)
            {
                return (PropertyInfo) memberExp.Member;
            }

            throw new ArgumentException($"The expression doesn't indicate a valid property. [ {property} ]");
        }
    }