當前位置: 首頁>>代碼示例>>C#>>正文


C# Expression.CastTo方法代碼示例

本文整理匯總了C#中System.Linq.Expressions.Expression.CastTo方法的典型用法代碼示例。如果您正苦於以下問題:C# Expression.CastTo方法的具體用法?C# Expression.CastTo怎麽用?C# Expression.CastTo使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在System.Linq.Expressions.Expression的用法示例。


在下文中一共展示了Expression.CastTo方法的3個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的C#代碼示例。

示例1: GetPropertyInfo

        /// <summary>
        /// Returns a PropertyInfo based on a link expression, it will pull the first property name from the linq express.
        /// </summary>
        /// <param name="type"></param>
        /// <param name="expression"></param>
        /// <returns></returns>
        public static PropertyInfo GetPropertyInfo(Type type, Expression expression)
        {
            string name = "";

            if (expression.NodeType == ExpressionType.Convert)
            {
                Expression operand=(expression as UnaryExpression).Operand;
                name = operand.CastTo<MemberExpression>().Member.Name;

            }
            else if (expression.NodeType == ExpressionType.Call)
            {
                name = expression.CastTo<MethodCallExpression>().Method.Name;
            }
            else if (expression.NodeType == ExpressionType.MemberAccess)
            {
                name = expression.CastTo<MemberExpression>().Member.Name;
            }

            PropertyInfo info = type.GetProperty(name);

            //if we don't find the property straight away then it is probably an interface
            //and we need to check all inherited interfaces.
            if (info == null)
            {
                info = GetAllProperties(type).FirstOrDefault(x => x.Name == name);
            }

            return info;
        }
開發者ID:drch-,項目名稱:Glass.Sitecore.Mapper,代碼行數:36,代碼來源:Utility.cs

示例2: GetPropertyInfo

        /// <summary>
        /// Returns a PropertyInfo based on a link expression, it will pull the first property name from the linq express.
        /// </summary>
        /// <param name="type"></param>
        /// <param name="expression"></param>
        /// <returns></returns>
        public static PropertyInfo GetPropertyInfo(Type type, Expression expression)
        {
            string name = "";

            if (expression.NodeType == ExpressionType.Convert)
            {
                Expression operand=(expression as UnaryExpression).Operand;
                name = operand.CastTo<MemberExpression>().Member.Name;

            }
            else if (expression.NodeType == ExpressionType.Call)
            {
                name = expression.CastTo<MethodCallExpression>().Method.Name;
            }
            else if (expression.NodeType == ExpressionType.MemberAccess)
            {
                name = expression.CastTo<MemberExpression>().Member.Name;
            }

            PropertyInfo info = type.GetProperty(name);
            return info;
        }
開發者ID:brianfeucht,項目名稱:Glass.Sitecore.Mapper,代碼行數:28,代碼來源:Utility.cs

示例3: GetPropertyName

        public static string GetPropertyName(Expression expression)
        {
            string name = string.Empty;

            switch (expression.NodeType)
            {
                case ExpressionType.Convert:
                    Expression operand = (expression as UnaryExpression).Operand;
                    name = operand.CastTo<MemberExpression>().Member.Name;
                    break;

                case ExpressionType.Call:
                    name = expression.CastTo<MethodCallExpression>().Method.Name;
                    break;
                case ExpressionType.MemberAccess:
                    name = expression.CastTo<MemberExpression>().Member.Name;
                    break;
                case ExpressionType.TypeAs:
                    var unaryExp = expression.CastTo<UnaryExpression>();
                    name = GetPropertyName(unaryExp.Operand);
                    break;
            }
            return name;
        }
開發者ID:uv20,項目名稱:Glass.Mapper,代碼行數:24,代碼來源:Utilities.cs


注:本文中的System.Linq.Expressions.Expression.CastTo方法示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。