本文整理汇总了C#中System.Linq.Expressions.LambdaExpression.Convert方法的典型用法代码示例。如果您正苦于以下问题:C# LambdaExpression.Convert方法的具体用法?C# LambdaExpression.Convert怎么用?C# LambdaExpression.Convert使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Linq.Expressions.LambdaExpression
的用法示例。
在下文中一共展示了LambdaExpression.Convert方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: CanHandle
protected override bool CanHandle(LambdaExpression expression)
{
if (expression.Body is MethodCallExpression)
{
return true;
}
return expression
.Convert(e => e.Body as UnaryExpression)
.Convert(ue => ue.Operand as MethodCallExpression)
.Convert(mc => mc.Object as ConstantExpression)
.Convert(ce => ce.Value as MethodInfo)
.Convert(mi => mi != null);
}
示例2: ExtractName
protected override string ExtractName(LambdaExpression expression)
{
var methodCallExpression = expression.Body as MethodCallExpression;
if (methodCallExpression != null)
{
return methodCallExpression.Method.Name;
}
var methodName =
expression.Convert(e => e.Body as UnaryExpression)
.Convert(ue => ue.Operand as MethodCallExpression)
.Convert(mc => mc.Object as ConstantExpression)
.Convert(ce => ce.Value as MethodInfo)
.Convert(mi => mi.Name);
if (!string.IsNullOrEmpty(methodName))
{
return methodName;
}
throw new InvalidOperationException();
}