簡體   English   中英

Type.GetProperties使用operator []排除屬性

[英]Type.GetProperties exclude properties with operator []

我打電話的時候

Type.GetProperties(BindingFlags.Public | BindingFlags.Instance)

我也用[]運算符得到屬性。 所以我舉例說:

MyType
-> Property1
-> Property2[string] 

返回的PropertyInfo列表包含Property1或Property2。

如何使用運算符排除屬性?

我希望它通過bindingflags發生,但迭代后可以通過PropertyInfo迭代,但我在PropertyInfo類上看不到任何指示它是否有運算符的東西。

我認為沒有任何BindingFlags值可以從一開始就排除它們,但您可以使用PropertyInfo.GetIndexParameters()來過濾屬性:如果屬性未編入索引,則它沒有索引參數。

您可以使用LINQ來解決此問題:

Type.GetProperties(BindingFlags.Public | BindingFlags.Instance).Where(prop => prop.GetIndexParameters().Length == 0);

暫無
暫無

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

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