C# 试图创建一个;流利的;使用LINQ表达式键入类

C# 试图创建一个;流利的;使用LINQ表达式键入类,c#,.net,linq,C#,.net,Linq,我想做如下工作,在C#中使用lambdas和LINQ表达式 公开课Foo { 私人实体; 公共Foo(某些实体) { this.entity=实体; 条形图(p=>p.FirstName); 酒吧(p=>p.姓氏); } 公共空白栏(表达式>barExpression) { //在这里做什么? } } 每次调用Bar(),我都想深入研究表达式,找出我引用的属性(例如FirstName或LastName),以及我当前使用的实体对象。我还需要财产的价值(这实际上是最重要的) 最终,我想扩展Bar来做

我想做如下工作,在C#中使用lambdas和LINQ表达式

公开课Foo { 私人实体; 公共Foo(某些实体) { this.entity=实体; 条形图(p=>p.FirstName); 酒吧(p=>p.姓氏); } 公共空白栏(表达式>barExpression) { //在这里做什么? } } 每次调用Bar(),我都想深入研究表达式,找出我引用的属性(例如FirstName或LastName),以及我当前使用的实体对象。我还需要财产的价值(这实际上是最重要的)

最终,我想扩展Bar来做更多的事情,但这很简单,因为我可以“煮沸”我的实验

谢谢

公共空白栏(表达式)
public void Bar<T>(Expression<Func<SomeEntity, T>> expression)
{
    string name = ((MemberExpression)expression.Body).Member.Name;
}
{ 字符串名称=((MemberExpression)expression.Body).Member.name; }

应该得到名字;
p=>p.FirstName
中没有实例;但是
这个.entity
应该给你想要的。值是
T value=expression.Compile()(entity)

我认为您的问题更多地与expression API有关,而不是与LINQ有关。看一看,;System.Linq.Expressions API;我觉得这和林克有关。
public void Bar<T>(Expression<Func<SomeEntity, T>> expression)
{
    string name = ((MemberExpression)expression.Body).Member.Name;
}