Joa*_*nge 6 .net c# reflection
我有一个这样的课:
class ItemList
{
Int64 Count { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
当我写这个:
ItemList list = new ItemList ( );
Type type = list.GetType ( );
PropertyInfo [ ] props = type.GetProperties ( );
Run Code Online (Sandbox Code Playgroud)
我得到一个空数组的道具.
为什么?是因为GetProperties不包含自动属性吗?
Jar*_*Par 18
问题是GetProperties默认只返回Public属性.在C#中,默认情况下成员不公开(我相信它们是内部的).试试这个
var props = type.GetProperties(BindingFlags.Instance | BindingFlags.NonPublic);
Run Code Online (Sandbox Code Playgroud)
BindingFlags枚举相当灵活.上面的组合将返回该类型上的所有非公共实例属性.您可能想要的是所有实例属性,无论可访问性如何.在这种情况下,请尝试以下方法
var flags = BindingFlags.Instance | BindingFlags.Public | BindingFlags.NonPublic;
var props = type.GetProperties(flags);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4659 次 |
| 最近记录: |