【问题标题】:Trying to create a "Fluent" type class using LINQ expressions尝试使用 LINQ 表达式创建“Fluent”类型类
【发布时间】:2011-07-20 21:19:10
【问题描述】:

我想在 C# 中使用 lambda 和 LINQ 表达式执行以下操作。

公共课 Foo { 私有 SomeEntity 实体; 公共 Foo(SomeEntity 实体) { this.entity = 实体; 酒吧(p => p.FirstName); 酒吧(p => p.SurName); } 公共无效栏(表达式> barExpression) { // 在这里做什么? } }

每次调用 Bar() 时,我都想深入研究表达式,找出我指的是哪个属性(例如 FirstName 或 LastName),以及我当前正在使用的 SomeEntity 对象。我还需要属性的值(这其实是最重要的)。

最终我想扩展 Bar 来做更多的事情,但这就像我可以“煮”我的实验一样简单。

谢谢!

【问题讨论】:

标签: c# .net linq


【解决方案1】:
public void Bar<T>(Expression<Func<SomeEntity, T>> expression)
{
    string name = ((MemberExpression)expression.Body).Member.Name;
}

应该得到名字; p =&gt; p.FirstName 中没有实例;但this.entity 应该给你你想要的。值为T value = expression.Compile()(entity)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-01-04
    相关资源
    最近更新 更多