我有以下代码行片段,用于按名称搜索实例的属性:
var prop = Backend.GetType().GetProperty(fieldName);
现在我想忽略 fieldName 的大小写,所以我尝试了以下方法:
var prop = Backend.GetType().GetProperty(fieldName, BindingFlags.IgnoreCase);
... 没有骰子。现在 prop 将找不到具有确切大小写的字段名称。
因此.....
如何使用 .Net 反射按名称搜索属性(忽略大小写)?
您需要指定BindingFlags.Public | BindingFlags.Instance
还有:
using System;
using System.Reflection;
public class Test
{
private int foo;
public int Foo { get { return foo; } }
static void Main()
{
var prop = typeof(Test).GetProperty("foo",
BindingFlags.Public
| BindingFlags.Instance
| BindingFlags.IgnoreCase);
Console.WriteLine(prop);
}
}
(当您未指定任何标志时,默认情况下提供 public、instance 和 static。如果您明确指定它,我建议您仅指定 instance 或 static 之一,如果您知道自己需要什么。)
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)