簡體   English   中英

如何從表達式樹中獲取屬性名稱?

[英]How can i get property names from an Expression tree?

我的方法是

    public Task<Product> GetProduct(int productId, params Expression<Func<Product, object>>[] properties)
    {

      var member = properties[0].Body as MemberExpression;
      var v = member.Member.Name;

    }

我可以通過使用適當的索引來獲得單個屬性名稱

 var member = properties[0].Body as MemberExpression;
 var v = member.Member.Name;

但這不是我想要的。 我很想獲得所有屬性名稱和string.linq加入它們。

我怎樣才能做到這一點?

as運算符,然后過濾不是屬性的那些。 如果你使用的鑄造,它會拋出異常,但as只會返回null。

var all =     
string.Join(", ", properties
.Select(x =>
    x.Body as MemberExpression))
.Where(x => x != null)
.Select(x =>
    x.Member.Name));

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM