当前位置: 首页>>代码示例>>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;未经允许,请勿转载。