- c - 在位数组中找到第一个零
- linux - Unix 显示有关匹配两种模式之一的文件的信息
- 正则表达式替换多个文件
- linux - 隐藏来自 xtrace 的命令
是否有 .NET Framework 替代 ExpressionHelper.GetExpressionText(LambdaExpression)
?我在一些无法引用 System.Web.Mvc 的项目中需要它。
我知道其中一种可能性是编写我自己的 GetExpressionText(LambdaExpression)
方法实现,但我不想这样做。我的目标是重用现有的 .NET Framework 代码。
最佳答案
自己实现该方法非常简单:
string GetPropertyName(LambdaExpression expression)
{
var body = (MemberExpression)expression.Body;
return body.Member.Name;
}
如果传入的 lambda 不是 MemberExpression
,它将抛出一个异常(尽管您可能想要一个更具描述性的异常)。
如果您想像 GetPropertyName(x => x.ID)
那样直接调用该方法,您需要以某种方式知道 x
是什么类型。一种方法是类型参数:
string GetPropertyName<T>(Expression<Func<T, object>> expression)
{
var body = (MemberExpression)expression.Body;
return body.Member.Name;
}
但这意味着您必须明确指定它:
GetPropertyName<Foo>(f => f.Id)
关于c# - ExpressionHelper.GetExpressionText(LambdaExpression) 替代,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8079218/
是否有 .NET Framework 替代 ExpressionHelper.GetExpressionText(LambdaExpression)?我在一些无法引用 System.Web.Mvc 的
我已经实现了一个 MVC 扩展来格式化我的应用程序中的数字。它基于找到的代码 here .如下 public static MvcHtmlString DecimalBoxFor(this HtmlH
本文整理了Java中org.apache.commons.jelly.expression.xpath.XPathExpression.getExpressionText()方法的一些代码示例,展示了
我是一名优秀的程序员,十分优秀!