想象以下
类型 T 有一个字段 Company。执行以下方法时,它可以完美运行:
Type t = typeof(T);
t.GetProperty("Company")
虽然下面的电话我得到了空
Type t = typeof(T);
t.GetProperty("company", BindingFlags.IgnoreCase)
有人有想法吗?
想象以下
类型 T 有一个字段 Company。执行以下方法时,它可以完美运行:
Type t = typeof(T);
t.GetProperty("Company")
虽然下面的电话我得到了空
Type t = typeof(T);
t.GetProperty("company", BindingFlags.IgnoreCase)
有人有想法吗?
您已经覆盖了默认查找标志,如果您指定新标志,则需要提供所有信息以便可以找到该属性。例如:BindingFlags.IgnoreCase | BindingFlags.Public | BindingFlags.Instance
您需要添加BindingFlags.Public | BindingFlags.Instance
谢谢,这真的帮助了我今天的紧要关头。我保存了审计信息,但属性名称的大小写不正确。(审计是内置在数据层中的。)无论如何,我不得不添加 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 的类的一部分。