想象一下以下情况
类型T具有字段Company。当执行以下方法时,它可以完美地工作:
Type t = typeof(T);
t.GetProperty("Company")
在下面的调用中,我得到了null
Type t = typeof(T);
t.GetProperty("company", BindingFlags.IgnoreCase)
有谁有主意吗?
发布于 2008-11-05 10:09:36
你已经覆盖了默认的查找标志,如果你指定了新的标志,你需要提供所有的信息,这样才能找到属性。例如:BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance
发布于 2008-11-05 10:07:38
您需要添加BindingFlags.Public | BindingFlags.Instance
发布于 2009-09-22 16:19:03
谢谢,这对我今天真的很有帮助。我保存了审计信息,但属性名称的大小写不正确。(审计内置在数据层中。)无论如何,我不得不添加IgnoreCase作为绑定标志,但它仍然不起作用,直到我的同事找到了这个答案。生成的函数:
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的类的一部分。
https://stackoverflow.com/questions/264745
复制相似问题