BindingFlags.IgnoreCase不适用于Type.GetProperty()?
想象下面
T型有一个公司。 当执行下面的方法时,它完美的工作:
Type t = typeof(T); t.GetProperty("Company")
下面的电话,但我得到空
Type t = typeof(T); t.GetProperty("company", BindingFlags.IgnoreCase)
有人有个想法吗?
你已经覆盖了默认的查找标志,如果你指定了新的标志,你需要提供所有的信息,以便find属性。 例如: BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance
BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance
你需要添加BindingFlags.Public | BindingFlags.Instance
BindingFlags.Public | BindingFlags.Instance
谢谢,这真的帮助我今天在一个捏。 我保存了审计信息,但是在属性名称上使用了不正确的shell。 (审计内置到数据层中)无论如何,所以我不得不添加IgnoreCase作为绑定标志,但是直到我的同事find了这个答案,它仍然不起作用。 由此产生的function:
public static void SetProperty(Object R, string propertyName, object value) { Type type = R.GetType(); object result; result = type.InvokeMember( propertyName, BindingFlags.SetProperty | BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance, null, R, new object[] { value }); }
这是我称之为DotMagic的一部分。