如果想获取对象的属性,一般通过函数Type.GetProperty(string, BindingFlags)来完成。其中BindingFlags指定了反射搜索的范围。

今天由于需要,决定把原来的区分大小写的获取属性方式,改为不区分大小写,于是把原来的代码

忽略大小写获取对象属性PropertyInfo propInfo = typeof(忽略大小写获取对象属性).GetProperty(name);


直接修改为:

忽略大小写获取对象属性PropertyInfo propInfo = typeof(忽略大小写获取对象属性).GetProperty(name, BindingFlags.IgnoreCase);
忽略大小写获取对象属性


以为大功告成,谁知根本找不到属性。

经过查阅MSDN,才发现BindingFlags.IgnoreCase仅仅定义了反射搜索的方法,而还需要定义反射搜索的范围。

所以,又把代码做了修改:

忽略大小写获取对象属性PropertyInfo propInfo = typeof(忽略大小写获取对象属性).GetProperty(name, BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase);


如果想获取对象的属性,一般通过函数Type.GetProperty(string, BindingFlags)来完成。其中BindingFlags指定了反射搜索的范围。

今天由于需要,决定把原来的区分大小写的获取属性方式,改为不区分大小写,于是把原来的代码

忽略大小写获取对象属性PropertyInfo propInfo = typeof(忽略大小写获取对象属性).GetProperty(name);


直接修改为:

忽略大小写获取对象属性PropertyInfo propInfo = typeof(忽略大小写获取对象属性).GetProperty(name, BindingFlags.IgnoreCase);
忽略大小写获取对象属性


以为大功告成,谁知根本找不到属性。

经过查阅MSDN,才发现BindingFlags.IgnoreCase仅仅定义了反射搜索的方法,而还需要定义反射搜索的范围。

所以,又把代码做了修改:

忽略大小写获取对象属性PropertyInfo propInfo = typeof(忽略大小写获取对象属性).GetProperty(name, BindingFlags.Public | BindingFlags.Instance | BindingFlags.IgnoreCase);


相关文章:

  • 2021-09-09
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-06-21
  • 2021-09-14
  • 2021-06-26
  • 2021-10-29
猜你喜欢
  • 2021-12-10
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2019-01-17
  • 2022-01-03
相关资源
相似解决方案